MapIconMaker: библиотека для Google Maps v2
Одним из способов является использование MapIconMaker . Вот пример здесь . Значки Google Maps по умолчанию имеют ширину 20 пикселей и высоту 34 пикселя, поэтому вы можете использовать что-то подобное для эмуляции:
var newIcon = MapIconMaker.createMarkerIcon({width: 20, height: 34, primaryColor: "#0000FF", cornercolor:"#0000FF"});
var marker = new GMarker(map.getCenter(), {icon: newIcon});
Вы могли бы даже обернуть это в какую-то функцию, чтобы упростить себе задачу:
function getIcon(color) {
return MapIconMaker.createMarkerIcon({width: 20, height: 34, primaryColor: color, cornercolor:color});
}
Это то, что я лично использую для всех маркеров, которые я создаю. Я предпочитаю иметь возможность менять цвета прихоти.
Обновление: шестнадцатеричный цвет значка по умолчанию - "# FE7569". Кроме того, вы можете установить изображение на маркер, а не создавать новый маркер с новым значком. Поэтому, если вы хотите выделить функцию, вы можете использовать что-то вроде этого, используя функцию выше:
function highlightMarker(marker, highlight) {
var color = "#FE7569";
if (highlight) {
color = "#0000FF";
}
marker.setImage(getIcon(color).image);
}
StyledMarker: библиотека для Google Maps v3
Поскольку V2 был заменен на V3 некоторое время назад, я решил обновить этот ответ. Я создал библиотеку для пользовательских маркеров, которую можно найти в служебной библиотеке V3 здесь . Он позволяет использовать разные цвета и формы, а также размещать текст на маркере. Он работает с помощью Google Charts API, в котором есть методы для создания маркеров типа Google Maps. Не стесняйтесь смотреть на исходный код, если предпочитаете напрямую использовать Google Charts API.
Суть этой библиотеки, однако, в том, что она позаботится о том, чтобы определить для вас кликабельные области этих маркерных изображений, так что, например, более длинный пузырь с текстом будет иметь ждущие нажатия области, которые можно ожидать, например этот пример .