作者chen0404 (没有昵称)
看板MacDev
标题[问题] 有关MKMapView问题
时间Thu Jun 12 13:55:29 2014
我现在正在实作简单的map (apple内建的MKMapView)
现在遇到一个小问题就是, 当我地图滑离自己的坐标点时(蓝点)
在别的地图浏览到一半, 会突然跳回自己的坐标点(蓝点)
在模拟器不会发生, 但在实机上面会发生
请问大概是什麽问题呢?
谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.227.181.61
※ 文章网址: http://webptt.com/cn.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