Карты Google (JS-v3): как сделать так, чтобы мои маркеры «падали с неба» - PullRequest
6 голосов
/ 05 ноября 2010

Как только я мог поклясться, я увидел демонстрацию использования Google Maps JavaScript API v3 для создания эффекта, при котором значок маркера карты упал с неба и приземлился на карту.

Я искали выполнил поиск, включая , глядя на API , и не может найти этот пример.

Кто-нибудь знает больше о том, как выполнить этот вариант использования?

Спасибо

Ответы [ 5 ]

2 голосов
/ 18 декабря 2010

Начиная с последней версии 3.3, просто добавьте Анимация: google.maps.Animation.DROP

в ваш список свойств при создании маркера. Это все для вас. Отскок также возможен, хотя я обнаружил, что без простого способа заставить его отскочить только один раз и остановиться, это больше проблем, чем стоит.

2 голосов
/ 18 ноября 2010

Простое расширение OverlayView в соответствии с предложением giogiga, вероятно, является самым безопасным способом, но это явно не легкий путь, потому что Marker имеет много встроенных вещей, таких как иконки, тени и перетаскивание. *

Действительно заманчиво просто расширить класс Marker, но этот класс непрозрачен - он не раскрывает свои внутренние свойства, например Вы не можете легко получить доступ к базовым элементам DOM, которые вам понадобятся для анимации маркера. Вы можете взломать что-то вместе с setPosition, но в результате получится что-то хрупкое и глючное. В качестве альтернативы вы могли бы взломать свой путь в нижележащие DOM-узлы, но тогда вы могли бы быть еще более хрупкими.

Так что кажется, что полное переопределение Marker все еще лучший путь.

0 голосов
/ 02 февраля 2011

Анимация маркера теперь является частью API v3.

http://code.google.com/apis/maps/documentation/javascript/overlays.html#MarkerAnimations

0 голосов
/ 12 ноября 2010

Вы должны реализовать свой собственный класс маркера, расширяющий google.maps.OverlayView.

По сути, это составляет 3 метода: onAdd / onRemove (которые являются хорошими кандидатами для запуска анимации) и draw (что, вероятно, должно просто обновить позицию маркера).

0 голосов
/ 05 ноября 2010

Я не знаю много о Google API, но я знаю, что вы могли бы сделать это просто с помощью jQuery

...