Вы можете динамически запрашивать изображения значков из API карт Google с помощью URL:
http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|FE7569
Что выглядит следующим образом: изображение имеет размер 21x34 пикселя, а наконечник булавки находится в положении (10, 34)
Вам также понадобится отдельное теневое изображение (чтобы оно не перекрывало соседние значки):
http://chart.apis.google.com/chart?chst=d_map_pin_shadow
Что выглядит следующим образом: изображение размером 40x37 пикселей и кончик булавки находится в положении (12, 35)
Когда вы создаете свой MarkerImage, вам нужно соответственно установить размер и опорные точки:
var pinColor = "FE7569";
var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + pinColor,
new google.maps.Size(21, 34),
new google.maps.Point(0,0),
new google.maps.Point(10, 34));
var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow",
new google.maps.Size(40, 37),
new google.maps.Point(0, 0),
new google.maps.Point(12, 35));
Затем вы можете добавить маркер на вашу карту с помощью:
var marker = new google.maps.Marker({
position: new google.maps.LatLng(0,0),
map: map,
icon: pinImage,
shadow: pinShadow
});
Просто замените «FE7569» на код цвета, который вам нужен. Например:
Благодарю Джека Б. Нимбла за вдохновение;)
Если вы используете Google Maps API v3, вы можете использовать,
setIcon
например,Или как часть маркера init:
Другие цвета:
Используйте следующий фрагмент кода, чтобы обновить маркеры по умолчанию другими цветами.
источник
Вот отличное решение с использованием самого API Карт Gooogle. Нет внешнего сервиса, нет дополнительной библиотеки. И это позволяет пользовательские формы и несколько цветов и стилей. В решении используются векторные маркеры, которые googlemaps api называет Symbols .
Помимо нескольких ограниченных предопределенных символов, вы можете создать любую форму любого цвета, указав строку пути SVG ( Spec ).
Чтобы использовать его, вместо установки параметра маркера «icon» для URL изображения, вы устанавливаете его в словарь, содержащий параметры символа. Как пример, мне удалось создать один символ, который очень похож на стандартный маркер:
Если вы сохраняете ключевую точку формы равной 0,0, вам не нужно определять параметры центрирования значка маркера. Другой пример пути, тот же маркер без точки:
И вот у вас очень простой и уродливый цветной флаг:
Вы также можете создавать пути с помощью визуального инструмента, такого как Inkscape (GNU-GPL, мультиплатформенность). Некоторые полезные советы:
источник
Ну, самая близкая вещь, которую я смог получить с помощью StyledMarker - это .
Пуля в середине не такая большая, как по умолчанию. Класс StyledMarker просто создает этот URL и запрашивает API Google для создания маркера .
Из примера использования класса используйте «% E2% 80% A2» в качестве текста, как в:
Вам нужно будет изменить StyledMarker.js, чтобы закомментировать строки:
так как это обрезает текстовую строку до 2 символов.
В качестве альтернативы вы можете создать собственные изображения маркеров на основе цветов по умолчанию с желаемыми цветами и переопределить маркер по умолчанию с помощью следующего кода:
источник
Я немного расширил ответ Вокимона , сделав его немного более удобным для изменения других свойств.
Использование:
Или при определении нового маркера:
источник
Привет, вы можете использовать значок как SVG и установить цвета. Смотрите этот код
источник
начиная с версии 3.11 API карт Google,
Icon
объект заменяетсяMarkerImage
. Иконка поддерживает те же параметры, что и MarkerImage. Я даже нашел, что это было немного более прямым.Пример может выглядеть так:
для получения дополнительной информации проверьте этот сайт
источник
источник
Как уже упоминали другие, ответ vokimon отличный, но, к сожалению, Google Maps работает немного медленнее, когда есть много маркеров на основе SymbolPath / SVG одновременно.
Похоже, что использование Data URI намного быстрее, примерно на уровне PNG.
Кроме того, поскольку это полный документ SVG, для точки можно использовать правильный закрашенный круг. Путь изменен, поэтому он больше не смещен в верхний левый угол, поэтому необходимо определить привязку.
Вот модифицированная версия, которая генерирует эти маркеры:
Использование:
Недостатком, очень похожим на изображение PNG, является то, что весь прямоугольник кликабелен. В теории не так уж сложно отследить путь SVG и сгенерировать многоугольник MarkerShape .
источник
Вы можете использовать этот код, он отлично работает.
источник
Объедините символьный маркер, путь которого рисует контур, с символом «●» для центра. Вы можете заменить точку другим текстом («A», «B» и т. Д.) По желанию.
Эта функция возвращает параметры для маркера с заданным текстом (если есть), цветом текста и цветом заливки. Он использует цвет текста для контура.
источник
Я пытаюсь создать пользовательский маркер карты Google двумя способами. Этот код запуска, используемый canvg.js, является лучшей совместимостью для браузера. Код закомментированного кода не поддерживает IE11 срочно.
источник
Я долго пытался улучшить нарисованный маркер Вокимона и сделать его более похожим на Google Maps (и в значительной степени преуспел). Вот код, который я получил:
Я также масштабировал его на 0,8.
источник
измените его на chart.googleapis.com для пути, иначе SSL не будет работать
источник
Используя swift и Google Maps Api v3, это был самый простой способ сделать это:
надеюсь, это поможет кому-то.
источник
Это пользовательские круглые маркеры
small_red:
small_yellow:
Small_green:
small_blue:
small_purple:
Это изображения размером 9x9 png.
Как только они появятся на вашей странице, вы можете просто перетащить их, и вы получите настоящий файл png.
источник
Вы также можете использовать цветовой код.
источник
Иногда что-то действительно простое, можно ответить сложным. Я не говорю, что любой из приведенных выше ответов является неправильным, но я бы просто применил, что это можно сделать так просто, как это
Я знаю, что этот вопрос старый, но если кто-то просто захочет изменить цвет булавки или маркера, ознакомьтесь с документацией: https://developers.google.com/maps/documentation/android-sdk/marker.
когда вы добавляете маркер, просто установите свойство icon:
Есть 10 цветов по умолчанию на выбор . Если этого недостаточно (простое решение), то я бы, вероятно, пошел на более сложное, приведенное в других ответах, удовлетворяя более сложную потребность.
PS: я написал нечто подобное в другом ответе, и поэтому я должен ссылаться на этот ответ, но в последний раз, когда я это сделал, меня попросили опубликовать ответ, так как он был таким коротким (как этот) ..
источник