CLGeocoder().reverseGeocodeLocation(CLLocation(latitude: coord.latitude, longitude: coord.longitude)) { [weak self] placeMarks, error in
print("PLACEMARKSFIRST:")
print(placeMarks?.first)
self?.geoCodeCounter += 1
guard let place = placeMarks?.first else {
self?.selectionSubject.accept(nil)
self?.geoCodeAddress()
return
}
print("PLACEMARKSFIRST:")
print(placeMarks?.first)
self?.geoCodeCounter += 1
guard let place = placeMarks?.first else {
self?.selectionSubject.accept(nil)
self?.geoCodeAddress()
return
}
print("PLACE:")
print(place)
print(place.administrativeArea)
print(place.subAdministrativeArea)
print(place.locality)
print(place.subLocality)
print(place.thoroughfare)
print(place.subThoroughfare)
self?.geoAdministrativeArea = place.administrativeArea ?? ""
self?.geoSubAdministrativeArea = place.subAdministrativeArea ?? ""
self?.geoLocality = place.locality ?? ""
self?.geoSubLocality = place.subLocality ?? ""
self?.geoThoroughfare = place.thoroughfare ?? ""
self?.geoSubThoroughfare = place.subThoroughfare ?? ""
调试代码:
地点:达吕沙法卡5/2区,达吕沙法卡5/2区,伊斯坦布尔萨勒耶34457号,图尔基耶@〈+41.12570667,+29.02811721〉+/-100.00米,区域C圆形区域(标识符:'〈+41.12570100,+29.02817000〉半径70.68',中心:〈+41.12570100,+29.02817000〉,半径:70.68米)
任择(“伊斯坦布尔”)
可选(“Sarıyer”)
可选(“Sarıyer”)
可选(“查姆勒泰佩”)
可选(“Darüşafaka码”)
可选(“5/2”)
正如你在上面看到的,place中的locality和那个place的响应之间有冲突。locality返回。Locality必须是“Darüşafaka”。我该如何解决这个问题?
是关于CLGeocoder库中的错误吗?
1条答案
按热度按时间lf5gs5x21#
事实上,它不是一个错误,甚至不是一个错误,你可以修复。
您将获得AppleMap数据库中指定位置的
locality
值如果看到doc,您将看到:
例如,如果地标位置是Apple的总部,则此属性的值将是字符串“库比蒂诺”。
苹果总部的位置值是库比蒂诺,因为它在Map上是这样表示的。
因此,如果在您输入的坐标中将位置值定义为
Sarıyer
,则无法对其进行更改。您可能需要检查和操作其他属性以获取所需的值