В настоящее время я использую значок StyledMarker (значок пузырька по умолчанию с пользовательскими цветами), но я видел, что некоторые сайты используют более компактную «точку» (изображение точечного маркера). У меня вопрос: можно ли заменить стандартный пузырьковый маркер точкой с помощью StyledMarker? Если нет, то как я могу это решить (кстати, решение должно позволять динамическую окраску точек)?
Маркер точки API Google Maps
Ответы (3)
Вы можете объявить значок маркера как символ и настроить его соответствующим образом.
new google.maps.Marker({
map: map,
position: map.getCenter(),
icon: {
path: google.maps.SymbolPath.CIRCLE,
fillColor: '#00F',
fillOpacity: 0.6,
strokeColor: '#00A',
strokeOpacity: 0.9,
strokeWeight: 1,
scale: 7
}
});
Вы можете поиграть с каждым свойством, чтобы добиться желаемого вида.
Если вам нужно что-то более сложное, я сделал (отказ от ответственности: Это был я, так как это сделал я) библиотека для использования иконочных шрифтов (таких как font-awesome или material icons) для рендеринга изображений (используя вспомогательный холст, а затем получая его dataurl).
Это в основном фабрика изображений, которую вы можете использовать как
new google.maps.Marker({
map: map,
position: map.getCenter(),
icon: MarkerFactory.autoIcon({
label: 'f1b9',
font: 'FontAwesome',
color: '#CC0000',
fontsize: 20
})
});
Вы даже можете опустить свойство font
, и оно отобразит буквальный текст, который вы ему передадите. Иногда я использую это для перечисления маркеров.
StyledMarker использует (устаревший) API изображений диаграмм для своих значков. Похоже, что в нем нет "кори"/точки (но ищите сами). В любом случае, если на первый взгляд, он изначально поддерживает только эти два:
- d_map_xpin_letter
- d_map_pin_letter
Это открытый исходный код, поэтому вы можете модифицировать его по своему усмотрению, но вам, возможно, придется использовать "нормальные" пользовательские маркеры, чтобы получить "корь".
Вы можете нарисовать себе точку, используя индивидуальный круг: https://developers.google.com/maps/documentation/javascript/examples/circle-simple