Google maps 谷歌地图v3距离
尝试创建新版本的映射函数,如下所示: 但是使用v3api 到目前为止,我可以在单击时设置标记,并可以绘制测地线多段线。 我目前遇到的问题有:Google maps 谷歌地图v3距离,google-maps,distance,calculator,Google Maps,Distance,Calculator,尝试创建新版本的映射函数,如下所示: 但是使用v3api 到目前为止,我可以在单击时设置标记,并可以绘制测地线多段线。 我目前遇到的问题有: 拖动标记时更新多边形线 我非常确定我必须把每个标记放在一个数组中,并为它们做一个标记 循环,以便我可以继续单击并添加将添加到 总距离 正确显示距离 我创建了一个JSFIDLE: 编辑:我意识到我没有调用“更新”功能。我目前正在尝试为每个标记创建数组。您看到的计算是将米转换为海里。我不久前写了这样一篇文章作为练习。不幸的是,它只能在Chrome中正常工作
- 拖动标记时更新多边形线
- 我非常确定我必须把每个标记放在一个数组中,并为它们做一个标记 循环,以便我可以继续单击并添加将添加到 总距离
- 正确显示距离
编辑:我意识到我没有调用“更新”功能。我目前正在尝试为每个标记创建数组。您看到的计算是将米转换为海里。我不久前写了这样一篇文章作为练习。不幸的是,它只能在Chrome中正常工作,在其他浏览器中也有奇怪的bug。距离函数应该在IE9中起作用 我的想法是将
侦听器添加到标记中,并保留一条表示路径的多段线,在拖动标记时更新其路径
演示
google.maps.event.addListener(tmpNode,'drag',函数(event){
distance.drawPath();
});
distance.drawPath=函数(){
距离。countNodes();
var-coords=[];
对于(var i=0;i=0;i--){
if(distance.nodes[i].getMap()==null){
节点拼接距离(i,1);
}
否则{
计数++;
}
}
返回计数;
}
distance.clearNodes=函数(){
对于(var i=0;i
谢谢您的帮助。我可能没有提到我在js有点不在行。不像大多数人那样粗鲁。我正在寻找脚本的具体帮助,使用我已经在链接到的js FIDLE中使用的变量。我明白了你向我展示的概念,我现在正试图找出如何在我的项目中实施。
google.maps.event.addListener(tmpNode, 'drag', function(event) {
distance.drawPath();
});
distance.drawPath = function() {
distance.countNodes();
var coords = [];
for (var i = 0; i < distance.nodes.length; i++) {
coords.push(distance.nodes[i].getPosition());
}
distance.line.setPath(coords);
meters = google.maps.geometry.spherical.computeLength(coords);
$("#distance_km").val((meters/1000).toFixed(3));
$("#distance_mi").val((meters/1609.344).toFixed(3));
}
distance.countNodes = function() {
var count = 0;
for (var i = distance.nodes.length - 1; i >= 0; i--) {
if (distance.nodes[i].getMap() == null) {
distance.nodes.splice(i, 1);
}
else {
count++;
}
}
return count;
}
distance.clearNodes = function() {
for(var i = 0; i < distance.nodes.length; i++) {
distance.nodes[i].setMap(null);
}
distance.drawPath();
}