ios - 通过完整地址后如何获取长,纬度,城市,邮政编码国家?

标签 ios swift google-places-api geocoding reverse-geocoding

我使用了谷歌自动完成API。借助此功能,我可以在搜索中找到地点。获取地址后,我想要获取城市、国家、邮政编码、街道、经度、纬度。我使用下面的代码获取地址。

let placesClient = GMSPlacesClient()
        print("text is \(textFieldAddress.text!)")
        placesClient.autocompleteQuery(textFieldAddress.text!, bounds: nil, filter:
        filter){ results, error in
          self.arr_addressSearch.removeAll()

          if results == nil
          {
            return
          }

          for result in results!
          {

            print("resut is \(result.attributedFullText.string)")
            print("address count  is \(self.arr_addressSearch.count)")

            self.arr_addressSearch.append(result.attributedFullText.string)
          }

最佳答案

您可以从代码中获取 placeId,例如

result.placeID

然后使用下面的代码获取该地点的详细信息,您将收到 GMSPlace 对象。从中您将找到包含纬度和经度的坐标属性。

从上面的结果响应中,您将获得所选地点的 place_id,然后您可以使用 place_id 获取该地点的所有详细信息,如下所示。

let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

placesClient!.lookUpPlaceID(placeID, callback: { (place: GMSPlace?, error: NSError?) -> Void in   if let error = error {
    print("lookup place id query error: \(error.localizedDescription)")
    return   }

  if let place = place {
    print("Place name \(place.name)")
    print("Place address \(place.formattedAddress)")
    print("Place placeID \(place.placeID)")
    print("Place attributions \(place.attributions)")   } else {
    print("No place details for \(placeID)")   
}
})

更多详情可以前往Here .

关于ios - 通过完整地址后如何获取长,纬度,城市,邮政编码国家?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40718893/

相关文章:

java - 如何从 Google Places API 将 PlacePicker 的 map 类型从简单更改为卫星?

ios - MKMapView 中的箭头图标

ios - 如何在 Swift 中显示当前 PDF 页码并将该页码保存为书签?

ios - 如何在 block 内分配 UIimage

ios - for循环Swift iOS的退出迭代

ios - 计算多个音频文件顺序播放的总时长/Swift 3、4

ios - 一致的旋转速度,iOS Sprite Kit

ios - 协议(protocol)不会在 swift Ios 中调用

android - 提取谷歌地图地点数据(特别是汽油价格)

php - 在给定半径内查找地址