【发布时间】:2016-07-29 11:01:54
【问题描述】:
我从给定的纬度和经度获取位置:
getLocationFromCoords(lat, lng) {
var geocoder = new google.maps.Geocoder();
var latLng = new google.maps.LatLng(parseFloat(lat), parseFloat(lng));
geocoder.geocode({
'latLng': latLng
}, function (results, status) {
if (status === google.maps.GeocoderStatus.OK) {
if (typeof results[0].geometry.location != 'undefined') {
console.log(lat, lng);
console.log(results[0].geometry.location.lat(), results[0].geometry.location.lng());
// set the location
} else {
//...
}
});
});
}
问题是来自results[0].geometry.location 的纬度和经度与请求的值不同。上面的代码显示在控制台中:
38.9067339 1.4205983
38.9069681 1.4205133000000387
所以我错过了什么吗?为什么不同的值?
【问题讨论】:
-
你想做什么? LatLong 到地址或地址到 LatLong?
-
@TuğcaEker - 经纬度地址(也包含经纬度)。
-
好的。您正在应用 反向地理编码 将坐标转换为地址。您无法获得完全相同的地理位置,因为 Google 会向您返回最近的记录。作为我的检查,期望和结果之间只有 20-30 米。别担心,这很正常。
-
@TuğcaEker - 哦,你是对的。两个地址我都没查,我以为第一个是正确的,大概有100公里远。
-
我用haversine方法计算,这些点之间的距离约为0.02公里。我错了吗? Image
标签: javascript reverse-geocoding