从Google map api javascript中的地图(使用图形管理器)获取所有多段线
如何获取使用图形管理器创建的所有多段线? 我无法使用DrawingManager事件监听器,因为插入的多段线是可编辑的(DrawingManager中的事件监听器只能在第一次插入后工作)。从Google map api javascript中的地图(使用图形管理器)获取所有多段线,javascript,google-maps,google-polyline,Javascript,Google Maps,Google Polyline,如何获取使用图形管理器创建的所有多段线? 我无法使用DrawingManager事件监听器,因为插入的多段线是可编辑的(DrawingManager中的事件监听器只能在第一次插入后工作)。 并且可以绘制多条多段线 var polylines = []; // array in the global scope 这是我的密码 function initMap(){ //set center coordinate var myLat= /*value*/;
并且可以绘制多条多段线
var polylines = []; // array in the global scope
这是我的密码
function initMap(){
//set center coordinate
var myLat= /*value*/;
var myLng= /*value*/;
var center= {lat:myLat, lng:myLng};
//create map
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 16,
center: center
});
addDrawingControl(map);
}
function addDrawingControl(map){
//add drawing control
var drawingControl = new google.maps.drawing.DrawingManager(
{
drawingMode : null,
drawingControl : true,
drawingControlOptions :{
position : google.maps.ControlPosition.TOP_CENTER,
drawingModes : [
google.maps.drawing.OverlayType.POLYLINE
]
},
polylineOptions : {
editable:true,
draggable:false,
geodesic:true
}
});
drawingControl.setMap(map);
//end of add drawing control
//add event listener
google.maps.event.addListener(drawingControl, 'polylinecomplete', function(polyline){
var polylinePath = polyline.getPath();
console.log("polyline : "+polylinePath.getArray());
});
}
保留对多段线的引用
var polylines = []; // array in the global scope
在polylinecomplete
事件中,将对多段线的引用添加到数组中
//add event listener
google.maps.event.addListener(drawingControl, 'polylinecomplete', function(polyline) {
polylines.push(polyline);
});
如果要捕获数据,请遍历数组,检索多段线的当前状态
google.maps.event.addDomListener(document.getElementById('btn'), 'click', function() {
var htmlStr = "";
for (var i = 0; i < polylines.length; i++) {
htmlStr += "polyline #" + i + " # vertices=" + polylines[i].getPath().getLength() + " length=" + google.maps.geometry.spherical.computeLength(polylines[i].getPath()).toFixed(2) + " km<br>";
for (var j = 0; j < +polylines[i].getPath().getLength(); j++) {
htmlStr += " " + polylines[i].getPath().getAt(j).toUrlValue(6) + "<br>";
}
}
document.getElementById('output').innerHTML = htmlStr;
});
保留对多段线的引用
var polylines = []; // array in the global scope
在polylinecomplete
事件中,将对多段线的引用添加到数组中
//add event listener
google.maps.event.addListener(drawingControl, 'polylinecomplete', function(polyline) {
polylines.push(polyline);
});
如果要捕获数据,请遍历数组,检索多段线的当前状态
google.maps.event.addDomListener(document.getElementById('btn'), 'click', function() {
var htmlStr = "";
for (var i = 0; i < polylines.length; i++) {
htmlStr += "polyline #" + i + " # vertices=" + polylines[i].getPath().getLength() + " length=" + google.maps.geometry.spherical.computeLength(polylines[i].getPath()).toFixed(2) + " km<br>";
for (var j = 0; j < +polylines[i].getPath().getLength(); j++) {
htmlStr += " " + polylines[i].getPath().getAt(j).toUrlValue(6) + "<br>";
}
}
document.getElementById('output').innerHTML = htmlStr;
});