【问题标题】:Retrieving different levels of placeIds检索不同级别的 placeId
【发布时间】:2018-05-27 23:44:55
【问题描述】:

有没有办法从特定的 placeId 中检索不同级别的 placeId?就像当你加载一个地方的地址组件时,你会得到 'country' 'city' 'region' 等等......但你只会得到不同级别的位置的名称。是否有可能得到国家,城市的placeId....?

当我在数据库中存储数据时,我还需要将国家placeId,城市placeId与原始placeId一起存储。当很多地方有相同的名字时,不想将地名存储在数据库中。

【问题讨论】:

    标签: google-maps google-places-api google-places


    【解决方案1】:

    如您所见,地址组件数组中没有地点 ID。您无法仅执行地点详细信息请求来获取此信息。开发者已经在 Google 问题跟踪器中创建了一个功能请求:

    Add place_id in each address_components

    您可以为它加注星标以添加您的投票。同时,获取国家和地区的地点 ID 的解决方法包括执行 reverse geocoding 请求,请求原始地点 ID 的坐标,结果类型为地区和国家。

    例如,我有一个地点 ID ChIJEygrJmSYpBIRUXOjvF0QSLw。这个地方的详细信息请求

    https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJEygrJmSYpBIRUXOjvF0QSLw&key=MY_API_KEY

    给出坐标41.3886875,2.130554。现在我可以执行额外的反向地理编码请求来获取地区和国家的地点 ID:

    https://maps.googleapis.com/maps/api/geocode/json?latlng=41.3886875%2C2.130554&result_type=country%7Clocality&key=MY_API_KEY

    最后一个给我

    • 地点 ID ChIJ5TCOcRaYpBIRCmZHTz37sEQ(巴塞罗那)
    • 地点 ID ChIJi7xhMnjjQgwR7KNoB5Qs7KY(西班牙)

    我希望这会有所帮助!

    【讨论】:

    • 谢谢您,尝试使用 Swift 通过带坐标的反向地理编码来获取数据。但我收到错误?可以像这样检索 JSON 数据吗?仅使用网址?我已经完成了将 API 密钥添加到 GMSPlacesClient 和 GMSServices 的设置。还在云控制台中启用了地图 API,但在 Xcode 中启动时仍然出现错误。有什么我想念的吗?
    • 错误消息:“CoreData:注释:无法在路径'/Users/user/Library/Developer/CoreSimulator/Devices/ID/data/Containers/Bundle/Application/ID/加载优化模型Project/GoogleMaps.bundle/GMSCacheStorage.momd/StorageWithTileProto.omo'"
    • 您可以按照stackoverflow.com/questions/24016142/… 中的说明从 swift 发送 HTTP 请求。网络服务的 API 密钥应该与您在 Maps iOS SDK 中使用的不同,因为网络服务不支持 iOS 应用限制。
    • 参考“无法在路径加载优化模型”看看issuetracker.google.com/issues/64504919
    猜你喜欢
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 2016-10-05
    • 2023-03-09
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多