#javascript #google-maps #google-maps-api-3 #markers
#javascript #google-карты #google-maps-api-3 #маркеры
Вопрос:
Я использую Google Maps api 3, чтобы позволить пользователю динамически рисовать маркеры на карте с помощью инструментов рисования. (ссылка здесь )
Я хочу, чтобы пользователь мог рисовать несколько маркеров с разными значками. Например, он должен уметь рисовать школьный маркер, больничный маркер и т. Д. Каждый значок будет отличаться.
Это то, что я хочу, чтобы пользователь рисовал.
В документах показано, что все маркеры будут иметь один и тот же значок.
Код:
$(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:
Обновите markerOptions
-property DrawingManager
-экземпляра на желаемый Icon
Базовое использование:
drawingManagerInstance.setOptions({markerOptions:
{icon:'path/to/another/marker.png'}});
Демонстрация: http://jsfiddle.net/doktormolle/A2Xhv /
Комментарии:
1. В этом случае все маркеры будут иметь один и тот же значок. Я хочу нарисовать несколько типов маркеров на одной карте.
2. Нет, они не будут. Как только маркер был нарисован, на него не влияют изменения MarkerOptions
3. Я совершенно не понимаю. Я обновил свой код. Вы хотите сказать, что в MarkerOptions я должен указать значок: ‘link_to_my_image’?
4. не непосредственно в MarkerOptions, когда вы хотите использовать разные маркеры, вы должны динамически обновлять MarkerOptions (например, на основе выбора пользователя) с помощью
setOptions
5. Отлично! Большое спасибо! 🙂