如何在django-olwidget中使用Openlayer刷新策略?

时间:2011-11-18 09:36:55

标签: django openlayers geodjango olwidget

我希望像地图一样“实时”。

我的主要问题是:

  • 如何将django-olwidget与openlayers OpenLayers.Strategy.Refresh一起使用?

    我是否需要“从头开始”以使用手动开放层?

    使用django-olwidget,数据在网页上,因此args定义了数据源,协议。

我的“第二个”问题是我应该选择哪种格式......

  • GeoJSON的? KML?其他

    这些格式是否包含openlayers指向特定的“样式”规范,如:

    {'graphic_name': 'square', 'point_radius': 10, 'fill_color': "#ABBAAB', 'stroke_color':'#BAABBA'}

我已经覆盖默认地图模板olwidget/multi_layer_map.html以访问我在JS中的地图对象。我认为在将每个数据层传递给地图之前应用js函数应该相当简单。

提前完成。

PS:我是法国人。

PS2:我在github上将此问题作为功能请求提出:https://github.com/yourcelf/olwidget/issues/89

2 个答案:

答案 0 :(得分:1)

关于样式,您应该看一下StyleMap [1],您可以根据属性设置样式属性。

对于主要问题,我很抱歉我不知道django-olwidget ......

1 - http://openlayers.org/dev/examples/stylemap.html

答案 1 :(得分:1)

如果您打算使用定期刷新的数据(不刷新页面)和geoJSON和KML等序列化格式,django-olwidget将无法帮助您解决问题。您可能会发现从头开始使用OpenLayers更容易。

但如果你真的想使用django-olwidget,我会这样做:

  1. 子类olwidget.InfoLayer创建一个新的矢量图层类型,使用geoJSON或KML等网络原生格式来获取其数据。
  2. 添加相应的python子类,以便能够将其与Django表单或任何用例一起使用。您可能需要指定地图将从中轮询其数据的URL。
  3. 除了直接为OpenLayers写作之外,还有很多工作要做。优点是你可以轻松地将Django表单与同一个地图集成。

    关于使用哪种序列化格式:我偏向于使用KML这样的XML风格的JSON风格,但它实际上并不重要--Django和OpenLayers都说得很流利。