2016-06-22 50 views
0

是否有人知道哪个谷歌地图api服务对于根据选定状态检索城市是理想的。例如,如果用户从选择输入中选择加利福尼亚州。返回基于谷歌地图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> 

或者是否有人为这种类型的功能推荐的另一种服务?

回答

0

很遗憾,Google地图API无法按状态进行过滤。

地方图书馆

在谷歌的地方JavaScript库包含在规定区域内的功能使应用程序能够搜索的地方(这个API为场所,地理位置或名胜景点中定义),如地图边界或固定点附近。

Google Places API提供了一个自动完成功能,您可以使用该功能为您的应用程序提供Google Maps搜索字段的提前输入搜索行为。当用户开始输入地址时,自动填充会填写剩下的内容。有关更多信息,请参阅autocomplete documentation

根据Component Filtering

您还可以设置地理编码服务来回报限于特定区域的地址结果。通过使用componentRestrictions参数指定限制。过滤器由一种或多种的:routelocalityadministrativeAreapostalCodecountry。只有匹配所有过滤器的结果才会被返回。过滤器值支持与其他地理编码请求相同的拼写纠正和部分匹配方法。

我们限制自动完成向城市:

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 
     }); 

希望这有助于。 :)

+1

我能通过sba gov网站获得我想要的东西。他们有一个api,它会根据您在url中传递的缩写状态参数返回城市。例如,以下内容将返回加利福尼亚州的所有城市。您可以指定是否希望通过在状态缩写代码之后提供的扩展名以xml或json格式返回数据。从终端尝试以下内容。 'curl http:// api.sba.gov/geodata/city_links_for_state_of/CA.json' –

相关问题