Comments 47
Некоторые вещи не актуальны для API 3.x.
В частности не надо получать свой ключ
а можно линк? мы у себя на сайте используем ключ, и если его не указывать карта не работает
code.google.com/apis/maps/documentation/javascript/
Тут ничего про ключ не написано, даже API чтобы его указывать нет
Тут ничего про ключ не написано, даже API чтобы его указывать нет
code.google.com/apis/maps/documentation/javascript/basics.html
Note: This version of the Google Maps JavaScript API no longer needs API keys!
Note: This version of the Google Maps JavaScript API no longer needs API keys!
Для третьей версии API ключ вроде бы не нужен уже.
Спасибо за статью. А не появилось ли еще бесплатной cms, реализующей подобный функционал из коробки?
Блин, увидел pushkino.org на главной Хабра с пометочкой Гугл.Мапс.Апи и сразу паранойя — думал, что меня нашли (я ж в Пушкино живу)…
Правильно! Регионы во власти OpenStreetMap!
геокодер у яндекса есть — http://api.yandex.ru/maps/geocoder/
У яндекса вроде на геокодинг лимиты гораздо выше.
В 10 раз.
Количество обращений к функции геокодирования ограничено 25000 запросов для одного API-Ключа в сутки. Отсюда: api.yandex.ru/maps/form.xml
Количество обращений к функции геокодирования ограничено 25000 запросов для одного API-Ключа в сутки. Отсюда: api.yandex.ru/maps/form.xml
ещё одна деталь — в третьей версии GmapAPI инфоокна ( InfoWindow ) перестали автоматически закрываться при открытии другого инфоокна… чтобы избежать этого нужно использовать одно инфоокно и обновлять контент и позицию соответственно по клику на маркере :)
Можно и так :-)
ну а как более экономно по части ресурсов сделать и чтобы последнее инфоокно закрывалось при открытии нового? :)
Можно ли получать данные об изменении информации на маркерах? Т.е. кто-то поменял инфу, а вы хотите об этом знать.
смотря какую инфу о маркерах… :)
вообще есть обработчики событий, и там есть например событие title_changed…
полный список тут…
code.google.com/apis/maps/documentation/javascript/reference.html#Marker
то есть при обновлении инфы о маркере можно менять тайтл и уже по этому событию что-то делать
вообще есть обработчики событий, и там есть например событие title_changed…
полный список тут…
code.google.com/apis/maps/documentation/javascript/reference.html#Marker
то есть при обновлении инфы о маркере можно менять тайтл и уже по этому событию что-то делать
Открытие инфоокна вешается на событие клика по маркеру, нужно повесить еще один обработчик, чтобы сначала показанное ранее окно закрывалось.
для этого каждый маркер должен знать о других маркерах и их инфоокнах… в любом случае придётся выносить инфу об инфоокне в глобальную область — получаем моё решение с общим инфоокном для всех маркеров… клик по маркеру закрывает текущее инфоокно, меняет контент и позицию и показывает на новом месте :)
если у вас есть предложения интереснее — с удовольствием выслушаю ;)
если у вас есть предложения интереснее — с удовольствием выслушаю ;)
У карты есть метод closeInfoWindow(), вызываем его перед показом нового инфоокна и все открытые до этого окна закроются. Так как это метод класса карты, то нам не нужно знать то знать о других маркерах и окнах нам не нужно.
Вы хотели сказать «был метод» :) во второй версии… в третьей его нет, о том и разговор
Черт, вы правы :) Не обращал, что в третьей версии реализовано по-другому. Интереснее тут предложения думаю нет, потому что даже у самого гугла в примерах реализовано примерно также, как описываете вы
А можете подсказать куда рыть чтобы сделать что-то похожее на то что в ссылочке в плане открытия окошек и их натсройки
www.booking.com/city/it/rome.html?sid=4389551beee6c27cd1ec26b1417c2f67;city=-126693
www.booking.com/city/it/rome.html?sid=4389551beee6c27cd1ec26b1417c2f67;city=-126693
а чего ж не могу — могу :)
есть в гугломапсах кастомные оверлеи — их и будем использовать…
pastebin.com/hvBJ6NLu
вот простой код — там класс Label ( вот он наш произвольный html для маркеров ) и пару строчек вверху как им пользоваться…
событие «мышка проплывает над маркером» добавите сами, я думаю :)
есть в гугломапсах кастомные оверлеи — их и будем использовать…
pastebin.com/hvBJ6NLu
вот простой код — там класс Label ( вот он наш произвольный html для маркеров ) и пару строчек вверху как им пользоваться…
событие «мышка проплывает над маркером» добавите сами, я думаю :)
Но самый главный прикол в том что оригинальный maps.google.com работает на версии АПИ 2!
А кластеризация в примере работает под третью версию api?
Когда есть необходимость отображать большое количество маркеров на карте одновременно и кластеризация не подходит, есть вариант использовать «облегченные маркеры» (Marker Light). Это обычные overlay слои с заданным изображением. Они едят в разы меньше ресурсов и вполне прилично работают когда из около 1000 штук на карте. Если хабраюзерам интересно, могу написать статью по этому поводу, пока в рунете не много материала на эту тему.
Для отображения всплывающих окон есть отличный класс ExtInfoWindow. Правда он тоже под вторую версию, но возможность визуального оформления окна в нем намного больше чем у стандартного, можно попробовать переписать под v3.
Когда есть необходимость отображать большое количество маркеров на карте одновременно и кластеризация не подходит, есть вариант использовать «облегченные маркеры» (Marker Light). Это обычные overlay слои с заданным изображением. Они едят в разы меньше ресурсов и вполне прилично работают когда из около 1000 штук на карте. Если хабраюзерам интересно, могу написать статью по этому поводу, пока в рунете не много материала на эту тему.
Для отображения всплывающих окон есть отличный класс ExtInfoWindow. Правда он тоже под вторую версию, но возможность визуального оформления окна в нем намного больше чем у стандартного, можно попробовать переписать под v3.
Посмотрел ваш код, для вычисления центра можно использовать bounds.getCenter(), а не считать его руками.
Собственно, всё то же реализуется при помощи OpenLayers, только у OpenLayers API более продуманное и универсальное, и работает оно не только с Google Maps, но и с любым другим провайдером как растровых, так и векторных данных.
Спасибо! Очень полезным оказалось!
Забавно, что гугл требует в яваскриптах указывать координаты через точку, а сам отдает
[Point] => Array
(
[coordinates] => Array
(
[0] => 4,8951679
[1] => 52,3702157
[2] => 0
)
)
[Point] => Array
(
[coordinates] => Array
(
[0] => 4,8951679
[1] => 52,3702157
[2] => 0
)
)
если кому до сих пор требуется API 2.0
вот инструкция на получения ключа
yermak.by/blog/design/item/28-googlemaps_api
вот инструкция на получения ключа
yermak.by/blog/design/item/28-googlemaps_api
А есть технология, когда в базе маркеров под 1 миллион, а отображать на карте нужно те меркеры, которые видит пользователю и с зумом более 10
И при передвижении картой добавлять маркеры которые стали «видимы»
И при передвижении картой добавлять маркеры которые стали «видимы»
Какой клевый и простой апи у Яндекса. Но вот печалька: соглашение запрещает юзать его для мониторинга автотранспорта, а именно это и хочется, с геокодингом. Но цены доя "очень малого бизнеса" неадекватны.
Кто читал гугловское соглашение, там тоже запрещено юзать это? В закрытых системах?
Есть открытые для коммерческих целей сервисы со схожим функционалом?
Чтобы геокодирование работало если набирать адрес задней пяткой левой ноги..
Кто читал гугловское соглашение, там тоже запрещено юзать это? В закрытых системах?
Есть открытые для коммерческих целей сервисы со схожим функционалом?
Чтобы геокодирование работало если набирать адрес задней пяткой левой ноги..
Sign up to leave a comment.
Google Maps API