虽然谷歌地图确实如此,但Geocode API无法识别地址

时间:2016-12-20 14:33:46

标签: google-maps google-maps-api-3 geocode

我在项目中使用Geocode API,用户可以在其中输入文本输入地址。此地址是使用Google Maps API找到的,但是,Geocode API无法找到该地址。奇怪的是,它适用于某些地址,但对于其他地址则不适用。

例如,地址 Courchevel,Saint-Bon-Tarentaise,法国可以在Google地图上找到,但不能在地理编码网址中找到: https://maps-api-ssl.google.com/maps/api/geocode/json?address=Courchevel%2C%20Saint-Bon-Tarentaise%2C%20France&sensor=false&client=gme-kickzag&signature=MY_SIGNATURE= ,正确地给出了MY_SIGNATURE。

另一方面,地址巴塞尔,瑞士正常运作:https://maps-api-ssl.google.com/maps/api/geocode/json?address=Basel%2C%20Switzerland&sensor=false&client=gme-kickzag&signature=MY_SIGNATURE=

非常感谢任何回答!

2 个答案:

答案 0 :(得分:1)

您可以使用Places Service并将地址ID传递给它。只有catch你需要传递服务一个map或html元素节点的实例。这是一个例子:

// "map" is a google map you have created
var service = new google.maps.places.PlacesService(map);

var request = {
  placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4'
};

service.getDetails(request, callback);

function callback(place, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    var lat = results.geometry.location.lat(),
        long = results.geometry.location.lng();
    console.log('lat & long', lat, long);
  }
}

在我的情况下,因为我没有使用地图所以我传递了一个像

这样的html节点
var details = document.getElementById('details');
var service = new google.maps.places.PlacesService(details);

要遵守这些条款,您无法隐藏该元素。但是看起来服务并没有增加它。

答案 1 :(得分:0)

搜索地址的主题很复杂。一些困难的事情包括:

在SmartyStreets的FAQ articles中有很多关于地址和搜索的有用信息。

至于你的问题,你提出了一个有趣的案例。 (目前还不是很清楚你的问题是什么,但是关于Google API的主题......)Google有许多产品,它们是为解决特定问题而创建的。在一个案例中,谷歌帮助用户探索某个区域可能会有所帮助:他们希望找到一个区域并显示餐馆和活动等。在不同的情况下,谷歌找到一个确切的地理编码位置会很好。因此,Google API用户必须仔细考虑他们的问题和目标,并正确决定使用哪些工具。您可能会发现Google API Picker很有用。

公平披露:我为SmartyStreets工作,这是一家专注于地址验证的公司。