您好我正在使用html5地理位置并使用navigator.geolocation.getCurrentPosition(成功,失败)对象来获取用户位置。
在成功函数中,我创建了一个名为coords的变量来保存坐标,一个变量coords2来保存我组成的其他坐标。
var coords = new google.maps.LatLng(position.coords.latitude position.coords.longitude);
var coords2 = new google.maps.LatLng(55.8619788, -4.2867578);
使用以下代码,我将地图上的两个点定位为标记:
var mapOptions = {
zoom: 16,
center: coords,
mapTypeControl: false,
navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},
mapTypeId: google.maps.MapTypeId.ROADMAP,
};
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
var marker = new google.maps.Marker({
position: coords,
map: map,
title: "Your current location!"
});
var marker2 = new google.maps.Marker({
position: coords2,
map: map,
title: "Nearest Person!"
});
我当时想要做的是弄清楚这些点之间的距离。我似乎无法找到一种方法来实现它。
以下是我的尝试:
var distance = computeDistanceBetween(coords, coords2);
alert(distance);
任何想法,我做错了什么?干杯! 保罗
答案 0 :(得分:3)
在v2中,你可以做到
coords.distanceFrom(coords2);
记录在http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GLatLng
修改:我认为您可能正在使用v3。如果是这样,我相信你需要完整的命名空间:
var distance = google.maps.geometry.spherical.computeDistanceBetween(COORDS, coords2);
答案 1 :(得分:3)
答案 2 :(得分:2)
默认情况下未加载google.maps.geometry库。您必须在引导程序请求中明确指定加载它:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?libraries=geometry&sensor=true_or_false"></script>