如何通过给定的lat / long而不是location来获取地址。我试过了 “反向地理编码”,但它只显示位置名称。
我的代码是
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
var geocoder;
var map;
var marker;
var marker2;
function initialize() {
geocoder = new google.maps.Geocoder();
var
latlng = new google.maps.LatLng(-34.397, 150.644);
var mapOptions = {
zoom: 5,
center: latlng
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
google.maps.event.addListener(map, 'click', function (event) {
//alert(event.latLng);
geocoder.geocode({
'latLng': event.latLng
}, function (results, status) {
if (status ==
google.maps.GeocoderStatus.OK) {
if (results[1]) {
alert(results[1].formatted_address);
} else {
alert('No results found');
}
} else {
alert('Geocoder failed due to: ' + status);
}
});
}); <!--click event--> }
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<div id="map-canvas"></div>
答案 0 :(得分:3)
检查这两个参考文献:
How to get address location from latitude and longitude in Google Map.?
Get location address from Latitude and Longitude in google maps
这些答案对你有帮助。
使用此网址获取地址:
http://maps.googleapis.com/maps/api/geocode/json?latlng=44.4647452,7.3553838&sensor=true
答案 1 :(得分:2)
街道号码地址为索引0.使用
results[0].formatted_address
而不是
results[1].formatted_address
您将获得地址
例如,在索引0,你得到:&#34; 36 Osborne Street,Wollongong ...&#34; ,在索引1你得到&#34;卧龙岗医院Crown St,Wollongong ......&#34; 。
您可以使用
获取formatted_address
的组件
results[0].address_components[0]
...
results[0].address_components[5]
答案 2 :(得分:1)
我认为你在寻找的是:
results[1].geometry.location
答案 3 :(得分:1)
将您的纬度、经度和 API 密钥传递给以下 API
$.get({ url: `https://maps.googleapis.com/maps/api/geocode/json?latlng=${lat},${longi}&sensor=false&key=${apikey}`, success(data) {
console.log(data.results[0].formatted_address);
}});
答案 4 :(得分:0)
尝试将lat和long传递给以下查询字符串,然后您将获得一个json数组,从那里获取您的城市
http://maps.googleapis.com/maps/api/geocode/json?latlng=44.4647452,7.3553838&sensor=true