绘图库:在Google maps api 3中动态绘制不同的标记

时间:2014-06-18 08:57:55

标签: javascript google-maps google-maps-api-3 markers

我正在使用Google maps api 3来允许用户使用绘图工具动态地将标记绘制到地图上。 (参考here

我希望用户能够绘制多个标记具有不同的图标。 例如,他应该能够绘制学校标记,医院标记等。每个图标都将是不同的。

This是我希望用户绘制的内容。

在文档中,它显示所有标记都具有相同的图标。

代码:

$(document).ready(function(){

var drawingManager;
var marker = new google.maps.Marker({});
var map;

function initialize() {
    var mapOptions = {
        center: new google.maps.LatLng(21.0000, 78.0000),
        zoom: 4
    };

    map = new google.maps.Map(document.getElementById('map-canvas'),
    mapOptions);

    drawingManager = new google.maps.drawing.DrawingManager({
        drawingMode: google.maps.drawing.OverlayType.MARKER,
        drawingControl: true,
        markerOptions:{
            draggable: true,
        },
        drawingControlOptions: {
            position: google.maps.ControlPosition.TOP_CENTER,
            drawingModes: [
                google.maps.drawing.OverlayType.MARKER
            ]
        }
    });
    drawingManager.setMap(map);

    google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) {
        var latlng = event.overlay.getPosition()
        console.log(latlng);
    });

}

google.maps.event.addDomListener(window, 'load', initialize);

});

有解决方法吗?

1 个答案:

答案 0 :(得分:5)

使用所需的Icon

更新markerOptions - 实例的DrawingManager - 属性

基本用法:

drawingManagerInstance.setOptions({markerOptions:
                                       {icon:'path/to/another/marker.png'}});

演示:http://jsfiddle.net/doktormolle/A2Xhv/