2012-01-04 72 views
4

我想知道如何通过Google地图标记创建效果/动画。具体而言,我想在给定时间后放大/缩小或“淡化”标记。用HTML5可以吗?有没有任何jQuery效果库这样做?带Google地图标记的效果和动画

提前(我可以使用地图瓦片服务器创建地图方块叠加层,并重新生成瓷砖覆盖每一秒,但我想这是非常处理密集型...)

感谢

回答

4

我还没有见过任何图书馆这样做,并且API中没有功能来淡化标记。

相反,您可以通过创建自己的Custom Overlay来模拟标记,它看起来像一个标记。自定义叠加层通常包含一个div,您可以轻松控制基于在自定义叠加层构造过程中分配的类或标识符的JavaScript/jQuery的不透明度。例如,如果您看一下this页面,您可以看到该按钮用于切换可见性,您可以轻松更改该JavaScript以控制某物的不透明度。

2

我正在寻找类似的东西。 如果您为所有标记设置标记选项'optimize:false',则每个标记都会有自己的元素,然后可以使用jQuery来选择地图上的所有标记,方法是使用$('#map_canvas img [src * =“文件名”]'),假设您使用自定义图像作为标记。

这不能解决的问题是将数组中的每个元素都返回给特定的标记。 我认为你可以一次一个地将标记添加到地图上,重新运行jquery选择器,并比较返回的元素与上一次运行的元素,以查看哪个元素是新的。我没有测试过这个部分(我在第一段中有我的说法),因为我正在尝试一些稍微不同的东西。

然后您应该可以直接调整图像的不透明度/大小。 这可能会让大量标记变得笨重。


上面的第二段是愚蠢的。

向地图添加标记,确保设置优化:false选项。那么

var freshlyAddedMarkerImage = $('#map_canvas img[src*="your_marker_icon"][class!="adjustMe"]'); 

新添加的标记不会有类,所以将是唯一选中的元素。在设置className之前,可以设置一个ID,将该元素添加到相同索引位置的数组中,并将相应的标记对象保存在另一个数组中等。

这应该比实施起来要笨得多我以前提出过。我会尽快回来一个实例。

我想,如果你知道由于年龄相同或者其他因素共享相同的变换(缩放/淡入淡出)的标记组,那么你可以添加所有这些元素,只做jQuery select最后,在循环返回的元素之前设置一个允许您全面调整它们的类。