Я использую API Карт Google для создания карты, полной маркеров, но я хочу, чтобы один маркер выделялся среди других. Простейшая вещь, я думаю, должна была бы изменить цвет маркера на синий, а не красный. Это простая вещь, или я должен как-то создать совершенно новый значок? Если мне нужно создать новый значок, что это самый простой способ сделать это?Как я могу изменить цвет маркера Google Maps?
ответ
Поскольку карты v2 является устаревшим, вы, вероятно, заинтересованы в v3 карты: https://developers.google.com/maps/documentation/javascript/markers#simple_icons
Для v2 карт:
http://code.google.com/apis/maps/documentation/overlays.html#Icons_overview
Вы бы один набор логики делать все «обычные» булавки , а другой - специальный флажок (ы), определяющий новый маркер.
Примечание для будущих читателей: это для API Карт Google v2, который устарел. Если вы используете v3, вам нужно искать в другом месте. – priestc
MapIconMaker: библиотека для Google Maps v2
Один из способов заключается в использовании MapIconMaker. Пример: here. Google Maps по умолчанию иконки 20px ширины и 34px по высоте, так что вы могли бы использовать что-то вроде этого, чтобы подражать:
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». Кроме того, вы можете setImage на маркерах, а не создавать новый маркер с новым значком. Так что если вы хотите, чтобы функция, чтобы выделить вы могли бы пойти с чем-то вроде этого, с помощью функции выше:
function highlightMarker(marker, highlight) {
var color = "#FE7569";
if (highlight) {
color = "#0000FF";
}
marker.setImage(getIcon(color).image);
}
StyledMarker: библиотека для Google Maps v3
Поскольку V2 был заменен V3 некоторое время назад я думал Я должен обновить этот ответ. Я создал библиотеку для пользовательских маркеров, которые можно найти в V3 Utility Library here. Он позволяет использовать разные цвета и формы, а также размещать текст на маркере. Он работает с использованием API графиков Google, в котором есть методы для создания маркеров типа Google Maps. Не стесняйтесь смотреть исходный код, если вы предпочитаете использовать API Google Chart напрямую.
Вещь в этой библиотеке заключается в том, что она заботится о том, чтобы определить для вас кликабельные области этих изображений маркеров для вас, так что, например, более длинный пузырь с текстом будет иметь области, которые можно щелкнуть, например, this example.
Кажется, что это совместимо только с GMaps API v2? – Tigraine
@Tigraine На самом деле я создал совершенно новую библиотеку для v3, называемую «StyledMarker», которую можно найти в библиотеке Utility v3: http://code.google.com/p/google-maps-utility-library-v3/ wiki/Библиотеки – Bob
Посмотрите на ответ Шона МакМэйнза для v3 – smp7d
С версией 3 API Карт Google, самым простым способом сделать это, может быть, захватывая набор пользовательских иконок, как и тот, что Бенджамин Кина создал здесь:
http://www.benjaminkeen.com/?p=105
Если вы поставите все эти значки в том же месте, на странице карты, вы можете раскрасить маркер, просто используя соответствующий вариант значка при его создании:
var beachMarker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: 'brown_markerA.png'
});
Это супер-легкий, и подход я использую для проекта, в котором я работаю в настоящее время.
Этот ответ потрясающий. Мне было грустно, что принятый ответ для V2, но, к счастью, прокрутка вниз окупилась. Благодаря! –
Лично я считаю, что значки, созданные API Google Chart, выглядят великолепно и легко настраиваются динамически.
Смотрите мой ответ на Google Maps API 3 - Custom marker color for default (dot) marker
Самый простой способ я нашел, чтобы использовать BitmapDescriptorFactory.defaultMarker() для documentation даже есть пример настройки цвета. Из моего собственного кода:
MarkerOptions marker = new MarkerOptions()
.title(formatInfo(data))
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
.position(new LatLng(data.getLatitude(), data.getLongitude()))
Вам не нужны специальные библиотеки для Google Maps v3.
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
});
из Matt Burns Это работает как в октябре 2014 года, но осуждается.
К сожалению, эта функция устарела (как вы можете видеть здесь) (https://developers.google.com/chart/infographics/). Это такая неутешительная ситуация, когда это устарело, а предыдущая версия, которую я использовал, «MapIconMaker», уже устарела. – zerowords
Обратите внимание, что это не работает с https, только http. Вот досада! – JoeGalind
@JoeGalind есть ли причина, по которой требуется шифрование при выборе цветов? Я имею в виду, что я не вижу угрозы безопасности использовать «http», если он не раскрывает то, о чем я не знаю в заголовке –
- 1. Google Maps: Как я могу изменить z-индекс маркера?
- 2. Как изменить цвет маркера/значка на карте Google Maps
- 3. Как я могу отформатировать ярлык маркера Google Maps
- 4. Как изменить значок маркера Google Maps динамически
- 5. Android Google Maps V2 цвет маркера
- 6. Как изменить видимость маркера Google Maps динамически
- 7. Как изменить цвет маркера в Карте Google?
- 8. Как изменить цвет маркера? Карты Google
- 9. Изменить значок маркера google maps напрямую?
- 10. Как изменить цвет маркера
- 11. Перемещение маркера Google Maps
- 12. Изменить размер настраиваемого маркера Google Maps
- 13. Изменить цвет маркера на Картах Google V2
- 14. Добавление маркера Google Maps
- 15. Как установить цвет маркера на черный в Google Maps android
- 16. Изменить выбранный маркер Карты Google или изменить цвет маркера? [iOS]
- 17. Размер маркера Google Maps
- 18. Как изменить размер маркера при использовании Google Maps setIcon
- 19. Как изменить цвет шрифта google maps marker clusterer
- 20. google maps change Значок маркера
- 21. Могу ли я подключить два маркера на Google Maps API
- 22. Изменить цвет маркера "onclick"
- 23. Как изменить значок маркера в vue-google-maps
- 24. Google maps API v3 - ярлык и цвет для маркера
- 25. Как я могу изменить значок маркера google maps в C# некоторым условием?
- 26. Google Maps API, изменить цвет текста
- 27. Angular2 Google Maps стиль маркера
- 28. Добавление маркера на Google maps
- 29. Добавление маркера в Gmaps (Google Maps)
- 30. URL-адрес маркера Google Maps?
Вы можете проверить это сообщение со вчерашнего дня: http://stackoverflow.com/questions/2467720/how-to-change-color-of-marker-in-google-map –
или, возможно, лучшее сообщение http: //stackoverflow.com/questions/7095574/google-maps-api-3-custom-marker-color-for-default-dot-marker – Faizan