如何从谷歌地图获取经度和纬度的place_id?
我可以通过使用This Link获得地点Id。但问题是这是基于位置搜索。我想使用draggeble标记来获取place_id,所以我不能使用上面的链接。我正在Google地图上移动标记,所以我如何在地图上获取place_id。如何从谷歌地图获取经度和纬度的place_id?
通过marker.getPosition()我们可以得到纬度和经度。所以我想通过纬度和经度知道place_id。我怎样才能得到,请告诉我
latitude=marker.getPosition().lat();
longitude=marker.getPosition().lng();
使用google.maps.Geocoder
为 Reverse Geocoding
如下解释:https://developers.google.com/maps/documentation/javascript/examples/geocoding-reverse
您将收到包含results[1].place_id
数据。
var geocoder = new google.maps.Geocoder;
latitude=marker.getPosition().lat();
longitude=marker.getPosition().lng();
var latlng = {lat: parseFloat(latitude), lng: parseFloat(longitude)};
geocoder.geocode({'location': latlng}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
if (results[1]) {
console.log(results[1].place_id);
} else {
window.alert('No results found');
}
} else {
window.alert('Geocoder failed due to: ' + status);
}
});
我有新的方法来解决这个问题。在这里,我使用谷歌http服务来获取基于经度和纬度的位置的全部信息。你只需要传递url和你的API密钥的纬度和经度(例如:latlng = 21.1497409,79.08747970000002 & key =你的API密钥)。这里是ExampleService类我得到服务
getService(url) {
return this.http.get(url).map((data: any) => data.json())
}
这一点,你可以把任何你想要的,只是拨打以下服务从那里你需要的位置数据
this._exampleService.getService("https://maps.googleapis.com/maps/api/geocode/json?latlng=21.1497409, 79.08747970000002&key=YOUR API KEY").subscribe(getplaceData => {
var placeDataDest: any;
placeDataDest = getplaceData;
console.log("i got place id yeee " + placeDataDest['results'][0]['place_id']);
console.log("i got place details yeee " + placeDataDest['results']);
});
希望你会发现这很有
您可以使用Geocoder API发送请求,或者直接将HTTP请求发送到后面的Web服务。
你的示例请求:
https://maps.googleapis.com/maps/api/geocode/json?latlng=LAT,LNG &键= YOUR_API_KEY
然后可以很容易地通过解析的Javascript JSON.parse JSON对象()。