如何显示用户在mapView中的位置而不运行GPS来更新位置(完全)?请问iPhone:如何在地图视图上显示用户位置,而无需更新位置/ GPS在后台运行?
mapView.userTrackingMode = kCLLocationAccuracyNearestTenMeters;
做这个工作还是会GPS还在后台烧电池?
谢谢:)
如何显示用户在mapView中的位置而不运行GPS来更新位置(完全)?请问iPhone:如何在地图视图上显示用户位置,而无需更新位置/ GPS在后台运行?
mapView.userTrackingMode = kCLLocationAccuracyNearestTenMeters;
做这个工作还是会GPS还在后台烧电池?
谢谢:)
我要去尝试回答你的问题是最好的,我能给出的有限的信息。
GPS有3种主要模式,从低功率到高功率,低精度到高精度。
的MKMapView
将显示用户位置的蓝色圆点,如果你设置showsUserLocation
到YES
。 MKMapView
将使用所有可用的位置方法尽可能准确地查找用户位置,并在设置为YES时继续更新。
跟踪MKMapView
,一种保持用户位置居中显示在屏幕上的模式,当用户移动时移动可见地图区域,并在iOS5中可用。你有三个MKUserTrackingMode
可供选择。从文档:
MKUserTrackingModeNone:地图不遵循用户位置。
MKUserTrackingModeFollow:地图跟随用户位置。
MKUserTrackingModeFollowWithHeading:地图跟随用户位置 并在标题更改时旋转。
因此将其设置为kCLLocationAccuracyNearestTenMeters
不会起作用,因为它在此上下文中不可用。
会在背景中显示位置烧坏电池吗?这取决于你的背景是什么意思。当用户点击home键时,MKMapView
被强制停止使用系统的GPS。当应用程序正在运行并且MKMapView处于活动状态并且showsUserLocation
属性设置为YES
时,它将继续使用任何可用的方法(包括GPS)更新位置。你有几个策略来减少这种情况。
1)假定用户需要在屏幕上显示地图时更新其位置。在这种情况下,请将showsUserLocation
设置为YES,直到地图移出屏幕或设备被锁定,然后将其设置为NO
2)假定用户只需要从特定点看到其位置的静态标记及时,就像应用程序打开时一样。在这种情况下,您需要创建一个CLLocationManager
对象,请求它为startUpdatingLocation
,筛选委托消息以获得所需的准确性,然后关闭位置更新(stopUpdatingLocation
)。然后,您可以将添加到MKMapView
以向用户显示其位置。
正如你所看到的2号是更多的工作,但非常节能。数字1很容易,但在地图可见时将使用更多电池。您需要决定用户期望的行为并相应地实施您的应用程序。
我认为它仍然会在后台运行GPS。 – citruspi 2012-04-19 20:04:43
:/那么你将如何显示用户的位置呢? – pasql 2012-04-19 20:06:19
我怀疑他希望地图静态显示(即根本不移动),同时GPS和/或CoreLocation以编程方式关闭,因此电池不会快速烧毁。 – 2012-04-19 20:08:55