有一次我可以发誓,我看到了一个使用 Google Maps JavaScript API v3 来创建效果的演示,您的地图标记图标似乎从天上掉下来并落在地图上。
我已经搜索和搜索,包括查看 API,但找不到该示例。
有没有人了解如何完成这个用例的更多信息?
谢谢
有一次我可以发誓,我看到了一个使用 Google Maps JavaScript API v3 来创建效果的演示,您的地图标记图标似乎从天上掉下来并落在地图上。
我已经搜索和搜索,包括查看 API,但找不到该示例。
有没有人了解如何完成这个用例的更多信息?
谢谢
从最新的 3.3 版本开始,只需添加动画:google.maps.Animation.DROP
创建标记时添加到您的属性列表中。它为你做这一切。弹跳也是可能的,尽管我发现如果没有一种简单的方法让它弹跳一次并停止,它的麻烦多于它的价值。
按照giogigaOverlayView
的建议进行扩展可能是最安全的方法,但这显然不是简单的方法,因为Marker
它有很多内置的东西,如图标、阴影和可拖动性。
只扩展类真的很诱人Marker
,但是该类是不透明的——它不会显示其内部结构,例如,您无法轻松访问底层 DOM 元素,您需要为标记设置动画。你可以用 hack 一些东西setPosition
,但结果将是一些脆弱和错误的东西。或者,您可以侵入底层 DOM 节点,但您的可能会更加脆弱。
因此,似乎完全重新实现Marker
仍然是最好的方法。
标记动画现在是 v3 API 的一部分。
http://code.google.com/apis/maps/documentation/javascript/overlays.html#MarkerAnimations
我对 Google API 了解不多,但我知道你可以用简单的jQuery做到这一点
您应该实现您的自定义标记类扩展google.maps.OverlayView
.
基本上,这相当于实现 3 种方法:onAdd/onRemove(它们是启动动画的良好候选者)和绘制(可能应该只是更新标记位置)。