日志文檔--站點導航模式下的邏輯順序

站點模式下寞钥,起點和終點的規(guī)劃土铺。
主要的難點,是區(qū)域變更時丢早,如何處理標注。
我們先來討論兩種情況:不跳轉區(qū)域和跳轉區(qū)域

將S/E的屬性列為

  • 站點名
  • 站點坐標
  • 是否在選定的區(qū)域內 —— 只在區(qū)域切換時賦值 isInChangedDistrict
  • 索引 —— 賦值有兩處
    • 當S/E 確實處于當前區(qū)域(isInChangedDistrict = YES)時秧倾,在viewForAnnotation時賦值怨酝。
    • Cell選中時賦值

根據上面的邏輯,切換區(qū)域時的具體操作步驟如下:

首先必定是移除所有的標注和覆蓋物那先。
- (IBAction)selectRelatedDistrict:(DistrictButton *)sender中通過代理
在BottomView中添加覆蓋物和標注:

[bottomeView.delegate addOverlaysToDistrictWithName:districtName];
[bottomeView.delegate addAnnotationPointInDistrict:annotationArray];

addoverlay回調

去StationInfo中封裝一個方法农猬,判斷S/E.name是否在districtName所指向的區(qū)域中。在這里對S/E.isInChangedDsitrict賦值售淡。

  • addoverlay引起的ViewForOverlay的相應代理斤葱,不需做修改。

addAnnotationPoint回調

在原有的基礎上揖闸,封裝一個函數揍堕,用于添加S/E生成的標注。具體的做法:

  • 判斷S/E.name是否為空汤纸,為空就不去生成標注衩茸。也就是不添加
  • 判斷S/E.isInChangedDsitrict, 若為YES, 也不去添加。否則贮泞,去生成一個新的標注楞慈,標注類為“termiAnnotation”添加之。
  • addAnnotation引起的ViewForAnnotation的相應代理啃擦,變更如下:
    • 需要判斷annotation.title 是否和 S/E.name 相同囊蓝。若相同,則將annotationView.img改為對應的S/E圖令蛉。

選中/不選中標注的邏輯如下:

對于didselectAnnotaiondidDeselectAnnotation的做法是一樣的

  • 對應的的annotation聚霜,若annotation.title == S/E.name,
    不做任何事。這里可以在S/E中封裝一個方法言询,對于傳入的名稱俯萎,判斷是否為S/E.
    否則,按正常去更改為選中的背景运杭。

Cell中“選中” —— 將標注定為S/E:

  • 由于此時的“選中”是為底欄發(fā)起夫啊,也就是說此時處于備選的站點,一定是在區(qū)域內的辆憔,因此不用去考慮區(qū)域外的S/E站點情況撇眯。
  • 選中后报嵌,判斷當前站點是否為S/E,若是熊榛,則不做任何操作锚国。若非,則繼續(xù)判斷S/E哪個為空就寫入哪個玄坦。
  • 同時血筑,取出對應的annotation View,更改他的背景圖
BMKAnnotationView *annotationView = [self.BaseBaiduMapView viewForAnnotation:annotation];
annotationView.image = [UIImage imageNamed:@"起始站點"];
S/E.isInChangedDsitrict = YES

刪除站點為S/E的邏輯如下:

  • 判斷當前S/E.isInChangedDsitrict, 若為NO煎楣,remove termiAnnotation類的annotation
// termiAnnotation有兩個豺总,S/E,要判斷傳進來的是哪一個
[annotation isKindOfClass:[terminalStationAnnotation class]] && [[annotation title] isEqualToString:station.name]

同時择懂,將S/E.name = nil喻喳, 不用去管坐標, 坐標用不到。

  • 若為YES困曙,根據S/E.index表伦,得到annotation,再得到annotationView慷丽,此時務必將他強轉為(MyPinAnnotationView否則會出錯)蹦哼,然后去更改背景, 最后復位S/E.index,同時將S/E.name = nil,isInChangedDsitrict=NO

規(guī)劃路徑時候的方法

難點在于盈魁,我們需要的是翔怎,規(guī)劃好路徑后,將所有的標注都移除杨耙,然后再生成兩個S/E的標注嗎赤套?如果上面的邏輯都成立,應該沒有問題珊膜。

            // 先去掉所有的標注和覆蓋物容握,規(guī)劃路徑
            [self.BaseBaiduMapView removeAnnotations:self.BaseBaiduMapView.annotations];
            [self.BaseBaiduMapView removeOverlays:self.BaseBaiduMapView.overlays];
            CLLocationCoordinate2D startPoint = self.guideStartStation.coordiate;
            CLLocationCoordinate2D endPoint   = self.guideEndStation.coordiate;
            [[BaiduRouteSearchTool shareInstance] pathGuideWithStart:startPoint end:endPoint];
            [self stopMapviewTransform];
            // 再添加標注
            self.guideStartStation.isInChangedDistrict = NO;
            self.guideEndStation.isInChangedDistrict = NO;
            [self addTermiStationAnnotations];

            // 通知底欄復位模式,讓底欄顯示出來的時候所有按鍵是未選中的狀態(tài),方便下次切換到站點搜索模式
            [[NSNotificationCenter defaultCenter] postNotificationName:DISTRICT_BTN_SEL_RADIO
                                                                object:@"復位模式"];

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末车柠,一起剝皮案震驚了整個濱河市剔氏,隨后出現的幾起案子,更是在濱河造成了極大的恐慌竹祷,老刑警劉巖谈跛,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異塑陵,居然都是意外死亡感憾,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門令花,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阻桅,“玉大人凉倚,你說我怎么就攤上這事∩┏粒” “怎么了稽寒?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長趟章。 經常有香客問我杏糙,道長,這世上最難降的妖魔是什么尤揣? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任搔啊,我火速辦了婚禮,結果婚禮上北戏,老公的妹妹穿的比我還像新娘。我一直安慰自己漫蛔,他們只是感情好嗜愈,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著莽龟,像睡著了一般蠕嫁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上毯盈,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天剃毒,我揣著相機與錄音,去河邊找鬼搂赋。 笑死赘阀,一個胖子當著我的面吹牛,可吹牛的內容都是我干的脑奠。 我是一名探鬼主播基公,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宋欺!你這毒婦竟也來了轰豆?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤齿诞,失蹤者是張志新(化名)和其女友劉穎酸休,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體祷杈,經...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡斑司,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了吠式。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陡厘。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡抽米,死狀恐怖,靈堂內的尸體忽然破棺而出糙置,到底是詐尸還是另有隱情云茸,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布谤饭,位于F島的核電站标捺,受9級特大地震影響,放射性物質發(fā)生泄漏揉抵。R本人自食惡果不足惜亡容,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望冤今。 院中可真熱鬧闺兢,春花似錦、人聲如沸戏罢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽龟糕。三九已至桐磁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間讲岁,已是汗流浹背我擂。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留缓艳,地道東北人校摩。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像郎任,于是被迫代替她去往敵國和親秧耗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理舶治,服務發(fā)現分井,斷路器,智...
    卡卡羅2017閱讀 134,704評論 18 139
  • 出自http://my.oschina.net/are1OfBlog/blog/420034 摘要 現在很多社交霉猛、...
    JJO閱讀 4,142評論 4 19
  • 1. Java基礎部分 基礎部分的順序:基本語法尺锚,類相關的語法,內部類的語法惜浅,繼承相關的語法瘫辩,異常的語法,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • http://www.cnblogs.com/kenshincui/p/4125570.html 摘要: 現在很多...
    大崔老師閱讀 3,300評論 1 2
  • 今天第二遍看《肖申克的救贖》,不是特別能用語言來完全表達內心的感受伐厌,先說說讓自己印象深刻的部分承绸。 一個...
    紫瀾閱讀 213評論 3 0