Google Maps API和DynamicMapsEngineLayer:在地图中循环显示要素

时间:2014-04-01 15:01:05

标签: javascript google-maps google-maps-engine

[编辑2014年4月2日]

我想强调一些事情。我的方案 有一个用户事件驱动它来触发事件监听器。我知道Maps API文档显示了如何从featureId获取功能的MapsEngineMouseEvent属性。但我的方案需要以编程方式获取功能featureId

我也尝试过以编程方式“伪造”一次点击,但这也不起作用。 (似乎事件对象无法实例化?)

我的预感是,对此的解决方案1)不存在,2)看似简单,或3)只有在最低等级8法师滚动自然20智慧检查时才会被发现..


[原始问题陈述]

我在自定义的Google地图客户端中有几个场景,我需要在DynamicMapsEngineLayer中循环播放功能并修改其样式特征。 DynamicMapsEngineLayer works by performing ..

  

..客户端渲染矢量数据,允许开发人员   动态重新设置矢量图层以响应用户交互   像悬停和点击。

Maps API文档介绍了如何使用事件侦听器重新设置各个功能,这些事件侦听器会公开由Google服务器分配的特殊featureId值。但我的方案没有用户驱动的事件。例如,请考虑以下假设链接:

http://www.acme-map.com/index.php?ZoomToAndHighlightFeatureWithId=12345

  

FeatureWithId是我们自己唯一的ID,而不是Google的特殊身份   featureId,我们目前在运行时没有。

我需要在地图上方加载地图并通过更改其样式特征突出显示它。它需要在地图首次加载时以编程方式执行此操作,而无需任何用户交互。如果这些矢量特征真正在DOM中呈现,那么无论多么神秘,都可以通过这种方式进入地图的内部并访问这些对象?

有没有办法循环使用DynamicMapsEngineLayer中的各个功能,或者在没有事件监听器的情况下获取featureId属性?

1 个答案:

答案 0 :(得分:2)

我可能在这里遗漏了一些东西,但是如果您已经知道了功能ID,那么您可以直接重新设置它而无需事件。只需直接致电getFeatureStyle()并根据需要设置样式:

var style = dynamicLayer.getFeatureStyle('1234');
style.strokeColor = '#FF0000';
style.iconImage = 'url(images/myIcon.png)';

如果您不知道功能ID,但确实有其他要查询的属性,则可以通过Maps Engine API拨打电话进行查询。