尝试使用谷歌地图api和javascript找到两个LatLng对象之间的距离

时间:2011-03-17 23:09:47

标签: javascript api google-maps distance

您好我正在使用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);

任何想法,我做错了什么?干杯! 保罗

3 个答案:

答案 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>