我只是想计算两点之间的距离,但它给了我Uncaught TypeError:a.lat不是一个函数。
function MapLocations() {
var i = 0;
var infoWindow = new google.maps.InfoWindow();
var myLatLng = {lat: 31.553761202565646, lng: 74.26506623625755}
var m = new google.maps.Marker({
map: map,
clickable: true,
animation: google.maps.Animation.DROP,
title: 'My Home',
position: myLatLng,
// html: h[i],
});
var circle = new google.maps.Circle({
map: map,
radius: 18.288, // 10 miles in metres
fillColor: '#50D050'
});
circle.bindTo('center', m, 'position');
var distanceInMetres = google.maps.geometry.spherical.computeDistanceBetween(myLatLng, pos).toFixed(2);
//console.log(distanceInMetres);
//google.maps.event.addListener(m, 'click', function () {
// infoWindow.setContent('Hello');
// infoWindow.open(map, this);
//});
//google.maps.event.addListener(dragable_marker, 'dragend', function (e) {
// alert(circle.getBounds().contains(dragable_marker.getPosition()));
//});
//alert(distanceInMetres);
i++;
}
pos是从导航器对象获取的用户位置。事情是,当我删除计算机阻力时,它的工作正常。
答案 0 :(得分:1)
google.maps.geometry.spherical.computeDistancBetween
方法不适用于LatLngLiteral个对象(至少目前为止),您必须传入google.maps.LatLng个对象。
computeDistanceBetween (从: LatLng ,到: LatLng ,半径?:数字)
返回值:数字
返回两个LatLng之间的距离(以米为单位)。您可以选择指定自定义半径。半径默认为地球的半径。
答案 1 :(得分:0)
你有一个sintax错误。使用逗号
创建最后一个javascript对象属性 var m = new google.maps.Marker({
map: map,
clickable: true,
animation: google.maps.Animation.DROP,
title: 'My Home',
position: myLatLng,
??? this is wrong
// html: h[i],
});
你应该在没有,
var m = new google.maps.Marker({
map: map,
clickable: true,
animation: google.maps.Animation.DROP,
title: 'My Home',
position: myLatLng
// html: h[i],
});