ios – CLGeocoder reverseGeocodeLocation返回不同纬度长度的地标? (附有游乐场示例)

ios – CLGeocoder reverseGeocodeLocation返回不同纬度长度的地标? (附有游乐场示例),第1张

概述为什么CLGeocoder reverseGeocodeLocation在查找地址时返回具有不同纬度/经度的地标? 背景:对于用户在地图上“长按”以放置引脚,但我的代码反向对此进行地理编码以便能够在引脚上放置区域名称,但随后丢弃的PIN位于不同的位置(即不良好的用户体验).所以我正在寻找一种方法来利用用户实际选择的纬度/经度,但随后只需查找位置名称. 示例:使用下面的代码,我看到: >输入:-28 为什么CLGeocoder reverseGeocodeLocation在查找地址时返回具有不同纬度/经度的地标?

背景:对于用户在地图上“长按”以放置引脚,但我的代码反向对此进行地理编码以便能够在引脚上放置区域名称,但随后丢弃的PIn位于不同的位置(即不良好的用户体验).所以我正在寻找一种方法来利用用户实际选择的纬度/经度,但随后只需查找位置名称.

示例:使用下面的代码,我看到:

>输入:-28.7780218895614,152.978574011267
>输出:-28.864405,153.0001191

码:

import UIKitimport CoreLocationimport PlaygroundSupport// Initial Test Co-ordinatelet locinput = CLLocation(latitude: -28.778021889561444,longitude: 152.97857401126666)print("input: \(locinput.coordinate.latitude),\(locinput.coordinate.longitude)")// Initiate Reverse GeoCodinglet geocoder: CLGeocoder = CLGeocoder()print("About to call reverse geoCoding function")geocoder.reverseGeocodeLocation(locinput) { placemarks,error in    guard let placemarks = placemarks else {fatalError("No Placemarks ProvIDed \(error?.localizedDescription)")}    for p in placemarks {        print("OUTPUT:  \(p.location!.coordinate.latitude),\(p.location!.coordinate.longitude)")    }}// Enable AsynchPlaygroundPage.current.needsIndefiniteExecution = true
解决方法 这是正确的行为.地标将返回其相关位置.这显然可能与输入的不同.当您向地理编码器提供位置时,此位置将“推断”您想要获得的地标.

假设这个:

 a: Associated location with the empire state building. b: Location you provIDed from an long press for instance.    -------    |     |    |  a  | --> CLPlacemark: Empire state building,location: a    |    b|    ------- 

你的假设是正确的. 总结

以上是内存溢出为你收集整理的ios – CLGeocoder reverseGeocodeLocation返回不同纬度/长度的地标? (附有游乐场示例)全部内容,希望文章能够帮你解决ios – CLGeocoder reverseGeocodeLocation返回不同纬度/长度的地标? (附有游乐场示例)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1031972.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存