gpt4 book ai didi

parsing - 从谷歌地图地理编码调用获取街道地址

转载 作者:行者123 更新时间:2023-12-02 18:34:09 24 4
gpt4 key购买 nike

我正在使用谷歌地图 API 对地址进行地理编码,我需要在不同字段中获取街道地址、城市、州和邮政编码。基于 address component types 的文档在结果中返回,这是我的代码:

var address = "";
var city = "";
var state = "";
var zip = "";

geocoder.geocode( { 'address': inputAddress}, function(results, status){
if (status==google.maps.GeocoderStatus.OK){
// loop through to get address, city, state, zip
$.each(results[0].address_components, function(){
switch(this.types[0]){
case "postal_code":
zip = this.short_name;
break;
case "street_address":
address = this.short_name;
break;
case "administrative_area_level_1":
state = this.short_name;
break;
case "locality":
city = this.short_name;
break;
}
});
} else{ alert("Invalid Address"); }
});

但是,当我输入地址时,似乎没有返回“street_address”;相反,它作为单独的字段返回,最常见的是“street_number”和“route”,偶尔还有其他字段(例如表示公寓号的“subpremise”)。请参阅this example of a geocoding result在文档中。

如何获取包含与街道地址相关的任何字段的地址变量?对于文档中的示例,我想要“1600 Ampitheatre Parkway”。

最佳答案

根据文档 street_address 是一种地址类型,但这并不一定意味着它是一种地址组件 - 它可能只是是用于 types 数组的标签 - 与 results 数组中的每个对象一起返回:

The types[] array within the returned result indicates the address type. These types may also be returned within address_components[] arrays to indicate the type of the particular address component.

您可能应该做的是首先遍历 results 数组,并在 types 数组中找到包含 street_address 的数组。然后使用该对象获取 formatted_address 属性 ( as mentioned by Aperçu )。如the doc states :“formatted_address 是一个包含该位置的人类可读地址的字符串”。当 typestreet_address 时,formatted_address 等于 street_number + 路线(后跟任何其他 >address_components 可用)。因此,您可以split(',') formatted_address 字符串来获取您需要的组件,或者使用该特定对象的address_components 数组在 results 数组中获取您需要的组件(当然,这样做您需要自己连接 street_numberroute - 因此需要添加逻辑)。

关于parsing - 从谷歌地图地理编码调用获取街道地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20371949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com