谷歌地图利用JS实现经纬度和地理位置之间相互转换的实现
google.maps.Geocoder
地理编码是将地址(如“1600 Amphitheatre Parkway, Mountain View, CA”)转换为地理坐标(如纬度 37.423021 和经度 -122.083739)的过程。
核心代码:
/**
* 经纬度转地理位置
*/
$('#map_latlng_to_address').click(function () {
var myLatlng = new google.maps.LatLng(34.2435947296974, 108.95278930664062);
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'location': myLatlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
notificationGo("消息提示", "经纬度转地理位置:" + results[0].formatted_address);
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
});
效果:
反向地理编码是将地理坐标转换为可人工读取的地址的过程。Google Maps Geocoding API 的反向地理编码服务还可让您找到对应于给定的地点 ID 的地址。
核心代码:
/**
* 地理位置转经纬度
*/
$('#map_address_to_latlng').click(function () {
var address = "中国陕西省西安市碑林区二环路沿线商业经济带南郭路31号";
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
notificationGo("消息提示", "地理位置转经纬度:" + results[0].geometry.location.lat()+' , '+results[0].geometry.location.lng());
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
});
效果:
注:以上代码中,notificationShow() 是一个自己封装的输出方法,功能 类似与 alert()
WebService的调用URL:
下面这两个地址,可以直接在浏览器的地址栏中输入出现结果:
这个就是 经纬度转地址
这个就是 地址转经纬度