Вот отличное решение с использованием самого API Карт Gooogle.Нет внешнего сервиса, нет дополнительной библиотеки.И это позволяет пользовательские формы и несколько цветов и стилей.В решении используются векторные маркеры, которые googlemaps api вызывает Символы .
Помимо нескольких и ограниченных предопределенных символов, вы можете создать любую форму любого цвета, указав строку пути SVG (Spec ).
Чтобы использовать его, вместо установки параметра маркера 'icon' для URL-адреса изображения, вы устанавливаете его в словарь, содержащий параметры символов.Как пример, мне удалось создать один символ, который очень похож на стандартный маркер:
function pinSymbol(color) {
return {
path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z M -2,-30 a 2,2 0 1,1 4,0 2,2 0 1,1 -4,0',
fillColor: color,
fillOpacity: 1,
strokeColor: '#000',
strokeWeight: 2,
scale: 1,
};
}
var marker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(latitude, longitude),
icon: pinSymbol("#FFF"),
});
I вы стараетесь сохранить формуключевой момент в 0,0 позволяет избежать необходимости определять параметры центровки значка маркера.Другой пример пути, тот же маркер без точки:
path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z',
И вот у вас есть очень простой и уродливый цветной флаг:
path: 'M 0,0 -1,-2 V -43 H 1 V -2 z M 1,-40 H 30 V -20 H 1 z',
Вы также можете создавать пути, используя визуальный инструмент, такой как Inkscape (GNU-GPL, мультиплатформенный).Некоторые полезные советы:
- Google API просто принимает один путь, поэтому вам нужно превратить любой другой объект (квадрат, серкл ...) в путь и соединить их как один.Обе команды в меню Path.
- Чтобы переместить путь к (0,0), перейдите в режим редактирования пути (F2), выберите все узлы управления и перетащите их.Перемещение объекта с помощью F1 не приведет к изменению координат узла пути.
- Чтобы убедиться, что контрольная точка находится в точке (0,0), вы можете выбрать ее отдельно и отредактировать координаты вручную на верхней панели инструментов.
- После сохранения файла SVG, который представляет собой XML, откройте его в редакторе, найдите элемент svg: path и скопируйте содержимое атрибута 'd'.