[编辑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属性?
答案 0 :(得分:2)
我可能在这里遗漏了一些东西,但是如果您已经知道了功能ID,那么您可以直接重新设置它而无需事件。只需直接致电getFeatureStyle()并根据需要设置样式:
var style = dynamicLayer.getFeatureStyle('1234');
style.strokeColor = '#FF0000';
style.iconImage = 'url(images/myIcon.png)';
如果您不知道功能ID,但确实有其他要查询的属性,则可以通过Maps Engine API拨打电话进行查询。