[問題] 有關MKMapView問題

看板MacDev作者 (沒有暱稱)時間11年前 (2014/06/12 13:55), 11年前編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
我現在正在實作簡單的map (apple內建的MKMapView) 現在遇到一個小問題就是, 當我地圖滑離自己的坐標點時(藍點) 在別的地圖瀏覽到一半, 會突然跳回自己的坐標點(藍點) 在模擬器不會發生, 但在實機上面會發生 請問大概是什麼問題呢? 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.181.61 ※ 文章網址: http://www.ptt.cc/bbs/MacDev/M.1402552531.A.F17.html

06/12 14:07, , 1F
code先貼出來比較好找問題
06/12 14:07, 1F

06/12 14:08, , 2F
有可能是你有實作delegate,每次update座標的時候都會回到原點
06/12 14:08, 2F

06/12 14:09, , 3F
因為實機很容易就改變位置,而模擬器不會
06/12 14:09, 3F

06/12 15:15, , 4F
是的 我有實作delegate,請問有解法嗎? 如果我把路線畫好
06/12 15:15, 4F

06/12 15:15, , 5F
時,把delegate設為nil,這樣藍點不就不會更新了?
06/12 15:15, 5F
謝謝 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
文章代碼(AID): #1JcK3JyN (MacDev)
文章代碼(AID): #1JcK3JyN (MacDev)