Ios 当用户获取当前位置时如何刷新或移动pin

Ios 当用户获取当前位置时如何刷新或移动pin,ios,mkmapview,Ios,Mkmapview,我正在开发一个使用用户位置更新的应用程序,我得到了当前的纬度和经度,显示了用户的当前位置,并对pin进行了注释,但是,当用户更改位置时,或者当用户移动并获得新的纬度和经度时,我需要有关移动pin的帮助。要显示当前位置,您可以将showsuserslocation设置为YES,然后让地图为您显示蓝点 如果要显示自己的注释并使其自动移动,请在实现MKAnnotation协议的类中实现 然后,当坐标发生变化时,更新注释的坐标,地图视图将自动(通过KVO)移动注释的视图/引脚 您也可以删除注释并在新位置

我正在开发一个使用用户位置更新的应用程序,我得到了当前的纬度和经度,显示了用户的当前位置,并对pin进行了注释,但是,当用户更改位置时,或者当用户移动并获得新的纬度和经度时,我需要有关移动pin的帮助。

要显示当前位置,您可以将
showsuserslocation
设置为YES,然后让地图为您显示蓝点

如果要显示自己的注释并使其自动移动,请在实现
MKAnnotation
协议的类中实现

然后,当坐标发生变化时,更新注释的坐标,地图视图将自动(通过KVO)移动注释的视图/引脚

您也可以删除注释并在新位置创建新注释,但这可能会导致闪烁


如果您正在使用Core Location获取位置更新,您将在
locationManager:didUpdateToLocation:fromLocation:
delegate方法中更新注释的坐标。

Hi Anna,感谢您提供了这个有用的答案,在我的例子中,我调用google maps API来跟踪两点之间的行程,这个API负责所有内容,当用户继续前进时,我没有任何干预来刷新蓝点吗?thanx@Malek,如果你的应用程序正在切换到“地图”应用程序,那么据我所知,你无法控制它。如果您在使用JavaScript API的html页面上使用Google地图,您可能可以通过JS调用来执行此操作,但我从未尝试过。@Anna:可以将setCoordinate实现到实现MKAnnotation的类中,但是如何将mapView插入地图上的MKUserLocation注释替换为该注释?后来,当调用-(void)mapView:(MKMapView*)aMapView didUpdateUserLocation:(MKUserLocation*)userLocation时,它是一个给定的MKUserLocation,所以它的坐标应该已经更新了,不是吗?@Oliver,这个答案说的是如果你想使用自己的注释,将地图视图的showsUserLocation保持为NO,并使用Core Location Manager的didUpdateToLocation委托方法来更新自定义用户位置注释的坐标。MKUserLocation将不再被使用或出现。@Anna:好的,我已经这样做了。我在屏幕上保留了蓝点以便比较,我可以看到pin不会自动移动。我添加了
self.customAnnotation
如果在
didUpdateUserLocation
中为nil(有效),那么
[self.customUserLocation注释setUserCoordination:newLocation.coordinate]didUpdateToLocation:fromlocation:
中的code>(不移动屏幕上的pin)