我在项目中使用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=
非常感谢任何回答!
答案 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工作,这是一家专注于地址验证的公司。