在页面加载后在Drupal上的openlayers中添加和删除标记

时间:2010-11-16 00:09:20

标签: drupal openlayers

我必须根据页面上的选择更改地图上显示的数据集,我想通过创建几个标记图层然后根据用户输入在它们之间切换来完成此操作。 出于某种原因,我不能在地图呈现在页面上之后添加图层,看起来它应该不那么难我认为我可能有错误的语法,因为Drupal设置地图的方式与直接的openlayers不同。 我不能得到像

这样的地图对象

var map = Drupal.settings.openlayers.maps [“openlayers-map-auto-id-0”];

然后添加和删除标记图层?也许有另一种方式来获得它?

任何帮助表示赞赏, - 克里斯

1 个答案:

答案 0 :(得分:2)

Drupal OpenLayers模块仅在Drupal.settings.openlayers.maps中存储设置

你需要的是这样的东西:

var ol = $('#openlayers-map-auto-id-0').data('openlayers');
var max_extent = ol.openlayers.getMaxExtent(); // Or some other OpenLayers method...
...

实际的OpenLayers实例(以及特定于地图的设置的副本)与jQuery的.data()方法一起存储。当您致电$('#map-id').data('openlayers')时,您将获得一个对象,其mapopenlayers成员分别对应于地图设置和实际的OL对象实例。

您可能需要考虑编写OL行为来处理您的用例 - 检查Drupal OpenLayers模块提供的默认行为,以了解其工作原理。