看板 MacDev 關於我們 聯絡資訊
我現在正在實作簡單的map (apple內建的MKMapView) 現在遇到一個小問題就是, 當我地圖滑離自己的坐標點時(藍點) 在別的地圖瀏覽到一半, 會突然跳回自己的坐標點(藍點) 在模擬器不會發生, 但在實機上面會發生 請問大概是什麼問題呢? 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.181.61 ※ 文章網址: http://www.ptt.cc/bbs/MacDev/M.1402552531.A.F17.html
SwiftLang:code先貼出來比較好找問題 06/12 14:07
kros:有可能是你有實作delegate,每次update座標的時候都會回到原點 06/12 14:08
kros:因為實機很容易就改變位置,而模擬器不會 06/12 14:09
chen0404:是的 我有實作delegate,請問有解法嗎? 如果我把路線畫好 06/12 15:15
chen0404:時,把delegate設為nil,這樣藍點不就不會更新了? 06/12 15:15
謝謝 kros 的解答, 在這邊野人獻曝一下, 由於didUpdateUserLocation一直被呼叫 因此目前我的解法是當地圖完成顯示時會設一個flag(_isLocated) ,取得目前的坐標 然後當每次didUpdateUserLocation被呼叫時, 我會去判斷距離是否超出100m 如果有的話才會繼續更新showsUserLocation -(void)mapView:(MKMapView*)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { CLLocationDistance distance = [userLocation.location distanceFromLocation:currentLocation]; if (_isLocated && distance < 100) { return; } ....... (code ...) } 如果各位有更好的解法 歡迎一起討論 謝謝 ※ 編輯: chen0404 (125.227.181.61), 06/12/2014 16:40:01