【问题标题】:Google Geocode API Filtering谷歌地理编码 API 过滤
【发布时间】:2015-05-12 21:35:24
【问题描述】:

我正在尝试使用Google Geocoding API,但似乎没有办法按多个状态进行过滤。我可以按一种状态过滤(例如https://maps.googleapis.com/maps/api/geocode/json?address=Elm+St&components=administrative_area:WA|country:US&key=API_KEY

有人知道如何按多个状态过滤吗?

【问题讨论】:

  • 你想达到什么结果?您想要一份包含Elm St 的所有州的列表吗?
  • 自从这篇文章以来,我做了更多的挖掘工作,据我所知,我想要实现的目标看起来不太可能。所以简而言之,只列出 WA、ID 和 OR 中的 Elm Streets(或其他方法来达到相同的结果)。 components=administrative_area:WA,ID,OR

标签: google-geocoding-api


【解决方案1】:

我不知道如何使用 Google API 来实现,但我知道如何使用 SmartyStreets Autocomplete API

带有state_filter 选项的简单GET 请求将满足您的需求。这是一个例子:

curl "https://autocomplete-api.smartystreets.com/suggest?prefix=Elm+St&state_filter=wa,id,or&auth-id=<your-auth-id>"

分解出来我们看到了这些参数:

hostname: autocomplete-api.smartystreets.com
prefix: Elm St
state_filter: WA,ID,OR
auth-id: <a-valid-smartystreets-auth-id>

prefix 应该是您要查找的地址的一部分。当用户在 Web 表单的地址字段中键入地址时,自动完成 API 用于建议地址。但您可以直接访问它以实现您声明的目的。

此请求的结果将是一个JSON 字符串:

{
    "suggestions": [
        {
            "text": "Elm St, Bellevue ID",
            "street_line": "Elm St",
            "city": "Bellevue",
            "state": "ID"
        },
        {
            "text": "W Elm St, Almira WA",
            "street_line": "W Elm St",
            "city": "Almira",
            "state": "WA"
        },
        {
            "text": "Elm St SW, Albany OR",
            "street_line": "Elm St SW",
            "city": "Albany",
            "state": "OR"
        },
        // 7 other results were truncated
    ]
}

注意:要使用任何 SmartyStreets API,您需要一个有效的auth-id,您可以在注册免费帐户时轻松获得。

(免责声明:我为 SmartyStreets 工作)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    相关资源
    最近更新 更多