【问题标题】:Return cities based off state Google Maps api返回基于州外的城市 Google Maps api
【发布时间】:2016-06-23 01:20:45
【问题描述】:

有谁知道哪个 Google Maps api 服务最适合根据选定的州检索城市。例如,如果用户从选择输入中选择加利福尼亚。

<select name="state">
   <option value="CA" selected>California</option>
</select>

我希望最好发出一个 ajax 请求,该请求将返回加利福尼亚的所有城市,然后将这些值附加到选择输入中。

<select name="city">
   <option value="Los Angeles">Los Angeles</option>
   // Other California cities 
</select>

或者有没有人推荐的其他服务来实现这种类型的功能?

【问题讨论】:

    标签: google-maps


    【解决方案1】:

    很遗憾,在 Google Maps API 中无法按状态过滤。

    地方图书馆

    Google Places JavaScript 库中的函数使您的应用程序能够搜索包含在定义区域(例如地图边界)内的地点(在此 API 中定义为场所、地理位置或显着的兴趣点),或者围绕一个固定点。

    Google Places API 提供了一项自动完成功能,您可以使用该功能为您的应用程序提供 Google 地图搜索字段的预输入搜索行为。当用户开始输入地址时,自动完成将填写其余部分。如需更多信息,请参阅autocomplete documentation

    根据Component Filtering

    您还可以将地理编码服务设置为返回仅限于特定区域的地址结果。使用componentRestrictions 参数指定限制。过滤器由以下一项或多项组成:routelocalityadministrativeAreapostalCode强> 或 country。只返回匹配所有过滤器的结果。过滤器值支持与其他地理编码请求相同的拼写校正和部分匹配方法。

    现在将自动完成功能限制为城市:

    type

    • 将结果限制在与指定类型匹配的地方。只能指定一种类型(如果提供了多种类型,则忽略第一个条目之后的所有类型)。请参阅list of supported types

    试试这个sample

    组件过滤器

    var map, places, infoWindow;
    var markers = [];
    var autocomplete;
    var countryRestrict = {'country': 'us'};
    

    类型限制

    document.getElementById('autocomplete')), {
            types: ['(cities)'],
            componentRestrictions: countryRestrict
          });
    

    希望这会有所帮助。 :)

    【讨论】:

    • 我能够通过 sba gov 网站获得我想要的东西。他们有一个 api,它将根据您在 url 中传递的缩写状态参数返回城市。例如,以下将返回加利福尼亚州的所有城市。您可以指定是否希望通过在州缩写代码之后提供的扩展名以 xml 或 json 格式返回数据。从终端尝试以下操作。 curl http://api.sba.gov/geodata/city_links_for_state_of/CA.json
    猜你喜欢
    • 2013-04-14
    • 2015-08-01
    • 2018-07-25
    • 2021-09-09
    • 2013-02-11
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    相关资源
    最近更新 更多