【问题标题】:Google Places API - Types different in autocomplete vs detailGoogle Places API - 自动完成与详细信息中的不同类型
【发布时间】:2018-01-08 14:20:29
【问题描述】:

鉴于以下对自动完成的 API 调用:

https://maps.googleapis.com/maps/api/place/autocomplete/json?types=address&input=23%20norton%20st

我收到以下回复:

{
    "predictions": [
        {
            "description": "23 Norton Street, Leichhardt, New South Wales, Australia",
            "id": "9711c656faa60f77a05680b603523a4bc75c45be",
            "place_id": "EjgyMyBOb3J0b24gU3RyZWV0LCBMZWljaGhhcmR0LCBOZXcgU291dGggV2FsZXMsIEF1c3RyYWxpYQ",
            "types": [
                "route",
                "geocode"
            ]
        },
        ...
    ],
    "status": "OK"
}

注意类型是路线和地理编码。

如果我查询详细 API:

https://maps.googleapis.com/maps/api/place/details/json?placeid=EjgyMyBOb3J0b24gU3RyZWV0LCBMZWljaGhhcmR0LCBOZXcgU291dGggV2FsZXMsIEF1c3RyYWxpYQ

我得到以下信息:

{
    "html_attributions": [],
    "result": {
        "id": "e698fdcd9dceed8fe42a926a19cb2b17d4f5f088",
        "name": "23 Norton St",
        "place_id": "ChIJpdXOTxewEmsRMmpMxLBgFpI",
        "reference": "CmRbAAAAKmYoyR1BrFqFQJi6CAD8cjhD4SDnZXMIC0mOLOpX_jPgIgFv0TJ3rv8p5L9xKrplHzUFxBNc8sd7PdkXdnCsTo_7-3X7mocd8yHnXCIKYAxj0MO4icLoFJjD3DEszqK3EhD8XIu6zNH-h3hqotfKjmd-GhRwyNIfJCo4bmOOLYgubm7j8ln_tw",
        "scope": "GOOGLE",
        "types": [
            "street_address"
        ],
        "url": "https://maps.google.com/?q=23+Norton+St,+Leichhardt+NSW+2040,+Australia&ftid=0x6b12b0174fced5a5:0x921660b0c44c6a32",
        "utc_offset": 600,
        "vicinity": "Leichhardt"
    },
    "status": "OK"
}

类型和地点 ID 与第一个响应不同。我希望它们是相同的,为什么它们不同?

【问题讨论】:

  • 仅仅因为你在这个问题上投入了赏金,它不会成为一个好问题。我将您的问题标记为unclear。您能否详细说明您遇到的实际问题?您正在调用 API,并且类型与示例不同,因此会自动回答您自己的问题 The types are completely different as well as the place id?! 是的。
  • 如果您阅读评论:_我只需要按街道地址过滤自动完成功能,但它会打折一些这样的地址,即使它是实际的街道地址_
  • 这是你的问题,你可以随心所欲。我只是说,如果您真的需要社区的帮助,您可能需要稍微澄清一下。刚刚又看了一遍,还是没看出你的问题是什么……

标签: google-maps autocomplete


【解决方案1】:

如果您搜索“诺顿街 23 号”而不是“诺顿街 23 号”,您实际上会得到您期望的结果(匹配 place_id、类型等)。我认为正在发生的事情是,当您搜索 23 Norton St 时,它实际上没有匹配项(作为 St 而不是 Street),因此它执行地理编码查找,这就是您看到的结果。

结果是否有任何原因给您带来问题?还是只是一种奇怪/好奇?

【讨论】:

  • 我只需要按街道地址过滤自动完成功能,但它会打折一些这样的地址,即使它是一个实际的街道地址
  • 有什么规律吗?是不是找不到其他缩写?例如。路/大道
【解决方案2】:

不确定您的实际问题是什么,但 Google 地方信息实际上可能有多个 ID 用于一个位置。参考:https://developers.google.com/places/place-id

此外,您的自动完成设置似乎只为您提供有关 geocoderoute 的返回类型,因为这也是结果的一个选项。没有您的实际代码,这是未知的。

我确定你已经看过这里的文档:https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete

但也许您错过了示例中的某些内容。希望能回答您的“问题”!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-30
    • 2012-12-23
    • 1970-01-01
    • 2016-07-13
    • 2022-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多