2

我在我的应用程序中使用 MKReverseGeocoder 来获取我的用户所在的州 (AdministrativeArea) 和县 (SubAdministrativeArea)。

我刚刚注意到没有为 SubAdministrativeArea 返回值(null)。状态正常工作。这在过去可以正常工作,我不确定它何时停止工作。我从模拟器、3GS 和 WiFi iPad 1 中得到了相同的行为。我也收到了来自几百英里外(同一个州,不同县)的用户的报告。

有没有其他人经历过这个?我还没有发现任何其他类似的错误报告。

4

2 回答 2

0

我最近玩过 MKReverseGeocoder,发现它有点不可靠。有时,没有返回街道号码,并且在某些情况下 SubAdministrativeArea 为空。此外,Locality(城市)值在某些情况下为空。

使用 MKReverseGeocoder 会使您依赖数据源,这可能不是您所期望的。例如,在纽约玩过它后,我注意到皇后区有时会在 Locality(城市)中返回,而 Brooklyn 则显示为 SubAdministrativeArea(县)。

您可以通过设置 MKMapView 并尝试不同的点在不同的状态下轻松测试此行为,或者只是从不同的州/城市/国家获取一组定义的坐标并在测试应用程序上运行它们。

您也可以尝试直接使用Google Maps Geocoding API,因为它会返回多个结果而不是一个。但是,这可能需要更多的工作,因为您需要手动进行解析。这是一个示例响应

于 2011-10-01T20:04:45.560 回答
0

我遇到了完全相同的问题并求助于使用 addressDictionary 地标属性,例如,

[placemark.addressDictionary objectForKey@"City"]

代替

placemark.subAdministrativeArea
于 2012-03-14T15:52:57.060 回答