【问题标题】:Drawing Library: Dynamically drawing different markers in Google maps api 3绘图库:在 Google maps api 3 中动态绘制不同的标记
【发布时间】:2014-06-18 08:57:54
【问题描述】:

我正在使用 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);

});

有解决办法吗?

【问题讨论】:

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


    【解决方案1】:

    将DrawingManager-instance 的markerOptions-属性更新为所需的Icon

    基本用法:

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

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

    【讨论】:

    • 在这种情况下,所有标记都将具有相同的图标。我想在同一张地图上绘制多种类型的标记。
    • 不,他们不会。一旦标记被绘制,他就不会受到 markerOptions 变化的影响
    • 我完全不明白。我已经更新了我的代码。你的意思是说在markerOptions中,我应该指定icon:'link_to_my_image'?
    • 不是直接在markerOptions中,当你喜欢有不同的标记时,你必须通过setOptions动态更新markerOptions(例如基于用户选择)
    • 完美!非常感谢! :)
    猜你喜欢
    • 2012-01-25
    • 1970-01-01
    • 2020-05-09
    • 2014-11-05
    • 2012-11-10
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多