2012-06-11 124 views
3

CLLocationManager類的文檔,我找了distanceFilter財產這樣的解釋:distanceFilter財產使用

此屬性只用在與標準位置 服務配合和監督顯著位置變化時,不使用。

你能解釋一下嗎?

回答

1

CLLocationManager,distanceFilter用於在設備移動x米時通知更改。默認值爲kCLDistanceFilterNone:所有移動均被報告。

docs

返回當前位置的修補程序後,接收器產生更新 事件只有當用戶的位置顯著的變化是檢測 。例如,當設備 變得與不同的蜂窩塔關聯時,它可能會生成一個新事件。它不依賴於distanceFilter屬性中的值 來生成事件。

通過調用startUpdatingLocation 方法啓動標準位置服務。此服務最適合需要更細緻地控制位置事件傳遞的應用程序。 具體來說,它會考慮desiredAccuracy 和distanceFilter屬性中的值,以確定何時傳遞新事件。 導航應用程序或任何需要高精度位置數據或定期更新流的應用程序需要標準位置服務的精度。但是,這些服務通常需要啓用位置跟蹤硬件 較長的一段時間,這可能會導致更高的電源使用情況 。

這就是爲什麼distanceFilter只用結合標準定位服務和監控顯著位置時,不使用變化了,例如。 desiredAccuracyheading信息。

這是因爲通常知道一個人移動了x米並不是很有用。然而,知道一個人在y方向上移動了x米並且z方向精度非常有價值。

0

標準位置更改:使用常規GPS模塊。電池密集。如果locationManager是您CLLocationManager類的實例啓動服務如下

[locationManager startUpdatingLocation]; 

顯着位置更改:每當無線電發射塔的變化。更好的電池。蘋果公司在官方文件中並沒有說這是因爲無線電塔發生了變化,但顯然這是蘋果公司在新功能發佈時所說的。

[locationManager startMonitoringSignificantLocationChanges]; 

酒店distanceFilterCLLocationManager如果您訂閱顯著位置的變化忽略不計。