作者chen0404 (沒有暱稱)
看板MacDev
標題[問題] 有關MKMapView問題
時間Thu Jun 12 13:55:29 2014
我現在正在實作簡單的map (apple內建的MKMapView)
現在遇到一個小問題就是, 當我地圖滑離自己的坐標點時(藍點)
在別的地圖瀏覽到一半, 會突然跳回自己的坐標點(藍點)
在模擬器不會發生, 但在實機上面會發生
請問大概是什麼問題呢?
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.181.61
※ 文章網址: http://webptt.com/m.aspx?n=bbs/MacDev/M.1402552531.A.F17.html
1F:推 SwiftLang:code先貼出來比較好找問題 06/12 14:07
2F:→ kros:有可能是你有實作delegate,每次update座標的時候都會回到原點 06/12 14:08
3F:→ kros:因為實機很容易就改變位置,而模擬器不會 06/12 14:09
4F:→ chen0404:是的 我有實作delegate,請問有解法嗎? 如果我把路線畫好 06/12 15:15
5F:→ 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