当前位置: 首页 > 面试题库 >

在Swift中将城市名称转换为坐标

陶锋
2023-03-14
问题内容

我没有看到关于SO的问题,但所有问题都在Swift
2中已经存在。我从Apple网站获得了此功能,可以将城市名称转换为纬度和经度,但是我不确定该函数将返回什么(因为return语句后没有任何内容)
)以及我应该通过什么。有人可以解释一下吗,或者告诉我如何使用它。

func getCoordinate( addressString : String, 
        completionHandler: @escaping(CLLocationCoordinate2D, NSError?) -> Void ) {
    let geocoder = CLGeocoder()
    geocoder.geocodeAddressString(addressString) { (placemarks, error) in
        if error == nil {
            if let placemark = placemarks?[0] {
                let location = placemark.location!

                completionHandler(location.coordinate, nil)
                return
            }
        }

        completionHandler(kCLLocationCoordinate2DInvalid, error as NSError?)
    }
}

问题答案:

您可以按照以下步骤进行操作:

import CoreLocation

func getCoordinateFrom(address: String, completion: @escaping(_ coordinate: CLLocationCoordinate2D?, _ error: Error?) -> () ) {
    CLGeocoder().geocodeAddressString(address) { completion($0?.first?.location?.coordinate, $1) }
}

用法:

let address = "Rio de Janeiro, Brazil"

getCoordinateFrom(address: address) { coordinate, error in
    guard let coordinate = coordinate, error == nil else { return }
    // don't forget to update the UI from the main thread
    DispatchQueue.main.async {
        print(address, "Location:", coordinate) // Rio de Janeiro, Brazil Location: CLLocationCoordinate2D(latitude: -22.9108638, longitude: -43.2045436)
    }

}


 类似资料:
  • 问题内容: 如何使用MapKit从坐标获取地址? 当在地图上长按时,我得到了以下代码: 我想用完整的地址(街道,城市,邮政编码,国家)打印。 问题答案: SWIFT 4.2:编辑 框架确实提供了一种从坐标获取地址详细信息的方法。 您需要使用地图套件的 反向地理编码 。类用于从地址获取位置,并从位置(坐标)获取地址。该方法将从坐标返回地址详细信息。 此方法接受作为参数并返回,其中包含地址字典。 所以

  • 我有这样的代码,当长按地图时,它得到坐标: 并且我想在中打印完整的地址(街道、城市、邮编、国家)。

  • 获取城市ID 说明 通过坐标获取城市id 地址URL /v1/common/Cities/getCityIdByPoi 支持格式 Json HTTP请求方式 GET 是否需要登录 是 关于登录授权,参见 如何登录授权 访问授权限制 暂无 请求参数 名称 类型 必选 描述 client_id string yes 申请应用时分配的APP_KEY access_token string yes 乘客认

  • 问题内容: 我正在Swift3中开发应用程序,但遇到字母问题,我找不到答案。 我怎么知道基于纬度和经度的城市名称和国家简称? 问题答案: 我建议将Google Maps API 与您的项目集成。如果您这样做,则可以使用Google提供的反向地理编码来完成您的任务。 此外,谷歌还有用于IOS开发的Google Maps SDK ,这也是值得考虑的。 UPD: 您可以在不将地图集成到项目中的情况下做到

  • 我是Android开发的新手,下面是我的关于使用Geocoder获取当前位置的城市名称的代码,它返回空: private void updateCurrentLocation(Location Location){double lat=0.0,lng=0.0; 有谁能帮忙吗?谢谢你!顺便说一句,有没有更好的办法来接收一个城市名字?谢谢你!

  • 本文向大家介绍使用HTML5将坐标转换为地名,包括了使用HTML5将坐标转换为地名的使用技巧和注意事项,需要的朋友参考一下 为此,请使用Google Maps API进行反向地理编码。 地理编码 是指将人类可读的地址翻译成映射上的某个位置。 将映射上的位置转换为人类可读地址的相反过程称为反向地理编码。 示例 让我们看一个设置纬度和经度的示例- 反向地址解析器将匹配国家,省,城市和邻里,街道地址和邮