如何在Drupal 7中以编程方式呈现Openlayers映射

时间:2012-09-05 19:02:16

标签: drupal drupal-7 openlayers

我的搜索几乎没有发现。我能找到的所有文档都是针对Drupal 6版本的。我需要弄清楚如何以编程方式呈现Openlayers地图(我假设使用openlayers_render_map函数)。最后,我想使用表单API创建一个映射,以便在多个匹配搜索的位置之间进行选择,这样我就可以获得规范地址和描述确切位置的WKT字符串。

这是一个相当开放的问题,我真正想要的是一些写得很好的文档的链接。但是,当我得出结论不存在这样的事情时,更具体的问题是:如何在PHP代码中设计Openlayers地图并将其呈现在任意模板中?它将 not 显示存储在节点中的数据,甚至是任何持久存储的数据,因此使用Views 不是选项。此外,如何开始编写与地图互动的Javascript,以便选择特定位置或检索当前选定的位置?

3 个答案:

答案 0 :(得分:1)

渲染地图:

$map = openlayers_map_load('my_map');
$output = openlayers_render_map($map->data,$map->name);

在js中与地图互动:

var ol_map = $('.openlayers-container .openlayers-map').data('openlayers');

答案 1 :(得分:0)

您确定使用视图不是一种选择吗?当我提出一个疯狂的想法时,请耐心等待:

创建一个地图视图,地图本身接受lat / lng作为参数(或您选择的其他一些地理值),然后创建一个根本不包含任何有意义的地图数据视图。链接起来。然后直接从地理编码器发送您的地图页面参数。

我正在研究类似但成功有限的事情,但它只是感觉应该是可能的......

答案 2 :(得分:0)

$map = openlayers_map_load('your_map');
$map->data['layer_activated']['your_layer'] = 'your_layer';
$map->data['layers']['your_layer'] = 'your_layer';
$map->data['behaviors']['openlayers_behavior_zoomtolayer']['zoomtolayer']['your_layer'] = 'your_layer';    
$output = openlayers_render_map($map->data,$map->name);