【发布时间】:2023-04-04 22:15:01
【问题描述】:
全局理念:首先用户可以添加标记和折线。然后他可以通过 dblclick 通过新窗口为每个标记添加信息窗口。但不幸的是,dblclick to marker 不起作用。您能否给点建议:如何通过jQuery向标记添加信息?
var all_overlays = [];
function writeInfo() {
alert("привет!");
}
function addPolyline() {
drawingManager.setDrawingMode(google.maps.drawing.OverlayType.POLYLINE);
}
function addMarker() {
drawingManager.setDrawingMode(google.maps.drawing.OverlayType.MARKER);
}
function initialize() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
//maxZoom:7,
minZoom: 2,
disableDoubleClickZoom: true,
center: new google.maps.LatLng(59.32522, 18.07002),
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true,
zoomControl: true
});
var polyOptions = {
strokeWeight: 0,
fillOpacity: 0.45,
editable: true
};
drawingManager = new google.maps.drawing.DrawingManager({
drawingControl: false,
drawingControlOptions: {
position: google.maps.ControlPosition.TOP_CENTER,
drawingModes: [
google.maps.drawing.OverlayType.MARKER,
polyLine = google.maps.drawing.OverlayType.POLYLINE,
]
},
markerOptions: {
draggable: true,
animation: google.maps.Animation.DROP
},
polylineOptions: {
editable: true,
geodesic: true
},
map: map
});
google.maps.event.addListener(drawingManager, 'overlaycomplete', function(e) {
var allOverlays = all_overlays.push(e);
if (e.type != google.maps.drawing.OverlayType.MARKER) {
var line = e;
line.type = e.type;
var newShape = e.overlay;
newShape.type = e.type;
google.maps.event.addListener(newShape, 'click', function() {
setSelection(newShape);
});
setSelection(newShape);
}
});
google.maps.event.addListener(all_overlays, 'dblclick', writeInfo);
google.maps.event.addListener("这必须是存储对象的变量,是吗?", 'dblclick', writeInfo);
【问题讨论】:
-
如果您将信息窗口添加到 标记,您不希望 dblclick(或单击)事件出现在标记上,而不是地图上吗?
-
google.maps.event.addListener(drawingManager, 'dblclick', writeInfo); - 也不要工作。
-
您发布的代码不是Minimal, Complete, Tested and Readable example,没有地图(或html)。
-
我试图修复我的示例
标签: javascript jquery google-maps google-maps-api-3