Google maps api 3 使用DrawingManager实例将形状加载到地图
我想将形状加载到存储形状的all_overlays数组中 通过DrawingManager绘制:Google maps api 3 使用DrawingManager实例将形状加载到地图,google-maps-api-3,Google Maps Api 3,我想将形状加载到存储形状的all_overlays数组中 通过DrawingManager绘制: drawingManager = new google.maps.drawing.DrawingManager({ drawingMode: google.maps.drawing.OverlayType.POLYGON, drawingControlOptions:{ position: google.maps.ControlPosition.TOP
drawingManager = new google.maps.drawing.DrawingManager({
drawingMode: google.maps.drawing.OverlayType.POLYGON,
drawingControlOptions:{
position: google.maps.ControlPosition.TOP_RIGHT,
drawingModes:[
google.maps.drawing.OverlayType.POLYGON
]
},
markerOptions: {
draggable: true
},
polylineOptions: {
editable: true
},
rectangleOptions: polyOptions,
circleOptions: polyOptions,
polygonOptions: polyOptions,
map: map
});
google.maps.event.addListener(drawingManager, 'overlaycomplete', function(e) {
all_overlays.push(e);
if (e.type != google.maps.drawing.OverlayType.MARKER) {
drawingManager.setDrawingMode(null);
var newShape = e.overlay;
newShape.type = e.type;
google.maps.event.addListener(newShape, 'click', function() {
setSelection(newShape);
});
setSelection(newShape);
}
});
但问题是,当我按下其中一个按钮时,它的类型似乎与图形管理器生成的类型不同:
>all_overlays // array have a drawing manager generated object
[Object]
>coords = [ new google.maps.LatLng(-20.2164629885305, -70.1565831899643), new google.maps.LatLng(-20.2166618288932, -70.15673339366913), new google.maps.LatLng(-20.21687325381024, -70.15626400709152), new google.maps.LatLng(-20.21664672710243, -70.15616208314896)];
[Q,Q,Q,Q]
>p1= new google.maps.Polygon({paths: coords,editable: true });
Kh<br>
>all_overlays.push(p1);
2
>all_overlays;
[Object, Kh]
>所有重叠//阵列都有图形管理器生成的对象
[对象]
>coords=[new google.maps.LatLng(-20.21646229885305,-70.1565831899643),new google.maps.LatLng(-20.2166618288932,-70.156733936913),new google.maps.LatLng(-20.216873251024,-70.1562640709152),new google.maps.LatLng(-20.21664646672710243,-70.156208314896)];
[Q,Q,Q,Q]
>p1=新的google.maps.Polygon({路径:坐标,可编辑:true});
Kh
>所有覆盖物。推动(p1);
2.
>所有覆盖层;
[对象,Kh]
然后我的新形状看起来像“Kh”,不像对象,然后它没有覆盖或类型属性,我想知道如何创建像第一个一样的形状,通过D.m创建。
为了给它附加一个事件监听器,就像其他监听器一样
我需要这样做,以便可以修改与DM加载的
谢谢您使用的是OverlyComplete,因此您需要进一步挖掘 也许可以试试:
google.maps.event.addListener(drawingManager, 'overlaycomplete', function(e) {
all_overlays.push(e.overlay);
if (e.overlay.type != "marker") {
drawingManager.setDrawingMode(null);
var newShape = e.overlay;
newShape.type = e.overlay.type;
google.maps.event.addListener(newShape, 'click', function() {
setSelection(newShape);
});
setSelection(newShape);
}
});
您使用的是OverlyComplete,因此您必须深入挖掘 也许可以试试:
google.maps.event.addListener(drawingManager, 'overlaycomplete', function(e) {
all_overlays.push(e.overlay);
if (e.overlay.type != "marker") {
drawingManager.setDrawingMode(null);
var newShape = e.overlay;
newShape.type = e.overlay.type;
google.maps.event.addListener(newShape, 'click', function() {
setSelection(newShape);
});
setSelection(newShape);
}
});
你到底想达到什么目的?创建最后一个形状的副本并将其绘制在地图上?您到底想要实现什么?创建最后一个形状的副本并在地图上绘制?