Javascript 计算多段线捕捉到街道时Google地图多段线的距离
我有以下代码,当单击地图时,会绘制一条捕捉到道路的路线。我想做的是找到多段线上每个标记之间的长度/距离,该长度/距离存储在数组中,并在每次单击新标记时递增,因此在最后可以显示移动的总距离。我尝试了一些在不同网站上找到的示例,但是没有一个适合我实际拥有的代码 我现在正在浏览GoogleMapsAPI文档,无意中发现了这一点,但是没有关于它可能如何工作的示例Javascript 计算多段线捕捉到街道时Google地图多段线的距离,javascript,php,api,google-maps,google-maps-api-3,Javascript,Php,Api,Google Maps,Google Maps Api 3,我有以下代码,当单击地图时,会绘制一条捕捉到道路的路线。我想做的是找到多段线上每个标记之间的长度/距离,该长度/距离存储在数组中,并在每次单击新标记时递增,因此在最后可以显示移动的总距离。我尝试了一些在不同网站上找到的示例,但是没有一个适合我实际拥有的代码 我现在正在浏览GoogleMapsAPI文档,无意中发现了这一点,但是没有关于它可能如何工作的示例 poly = new google.maps.Polyline({ map: map }); google.maps.event.ad
poly = new google.maps.Polyline({ map: map });
google.maps.event.addListener(map, "click", function(evt) {
if (path.getLength() === 0) {
path.push(evt.latLng);
poly.setPath(path);
} else {
service.route({
origin: path.getAt(path.getLength() - 1),
destination: evt.latLng,
travelMode: google.maps.DirectionsTravelMode.DRIVING
}, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
for (var i = 0, len = result.routes[0].overview_path.length;
i < len; i++) {
path.push(result.routes[0].overview_path[i]);
}
}
});
}
var latitude_longitude = evt.latLng;
alert(latitude_longitude);////Gets latitude and Longitude - Latitude first - Longitude second
});
可以找到当前发生情况的工作示例
非常感谢您的帮助。要计算多段线的长度,请将所有顶点之间的距离相加:
var distance = 0;
for (var i = 0; i < path.getLength() - 2; i++) {
distance += google.maps.geometry.spherical.computeDistanceBetween(path.getAt(i), path.getAt(i + 1));
}
alert(distance / 1000).toFixed(2) + " km [" + path.getLength() + "]");
使用“捕捉到道路”时是否适用?