2012-02-05 53 views
1

我要添加一个额外的控制到的OpenLayers地图通过olwidget处理点击等产生在这个例子: http://openlayers.org/dev/examples/click.htmlGeoDjango内置/ olwidget:添加控件到地图

<script> 
    OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { 
     ... click handling code goes here ... 
    }); 

    var click = new OpenLayers.Control.Click(); 
    map.addControl(click); 
    click.activate(); 
</script> 

但由生成的JavaScript olwidget不分配所创建的映射到一个变量,所以我可以钩它:

new olwidget.Map("id_coords", [...], {...}); 

如果仅是这样的:

var map = new olwidget.Map("id_coords", [...], {...}); 

上面的代码会运行。

这种情况下最好的方法是什么?我应该操纵生成地图脚本的olwidget模板还是有更自然的方式?

谢谢。

回答

0

随着最近更新olwidget,现在可以定义一个独立的模板在元类定义渲染帖子:所以

class PostForm(MapModelForm): 
    class Meta: 
     model = Post 
     template = 'posts/post_map.html' 

,定义自定义模板,并分配映射到一个JavaScript变量似乎是正确的做法。