Как использовать стратегию обновления Openlayer с django-olwidget? - PullRequest
0 голосов
/ 18 ноября 2011

Я бы хотел иметь карту в реальном времени.

Мой главный вопрос:

  • Как использовать django-olwidget с открытыми слоями OpenLayers.Strategy.Refresh?

    Нужно ли начинать заново "с нуля", чтобы использовать открытые слои вручную?

    С помощью django-olwidget данные находятся на веб-странице, поэтому аргументы определяют источник данных, протокол.

Мой "второй" вопрос о том, какой формат мне выбрать ...

  • 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 ]

1 голос
/ 08 января 2012

Если вы собираетесь использовать регулярно обновляемые данные (без обновления страницы) и форматы сериализации, такие как geoJSON и KML, django-olwidget не очень поможет вам прямо из коробки. Возможно, вам будет проще использовать OpenLayers с нуля.

Но если вы действительно хотите использовать django-olwidget, вот что я бы сделал:

  1. Подкласс olwidget.InfoLayer для создания нового типа векторного слоя, который использует собственный сетевой формат, такой как geoJSON или KML, для получения своих данных.
  2. Добавьте соответствующий подкласс python , чтобы иметь возможность использовать его с формами Django или любым другим вариантом использования. Возможно, вам потребуется указать такие вещи, как URL-адрес, с которого карта будет опрашивать свои данные.

Это большая работа помимо написания непосредственно для OpenLayers. Преимущество будет в том, что вы получите простую интеграцию форм Django с той же картой.

Относительно того, какой формат сериализации использовать: я неравнодушен к JSON-вариантам по XML-вариантам, таким как KML, но это не имеет большого значения - Django и OpenLayers оба говорят свободно и свободно.

1 голос
/ 18 ноября 2011

Что касается стиля, вы должны взглянуть на StyleMap [1], где вы можете установить свойства стиля в соответствии с атрибутами.

По основному вопросу, извините, я не знаю django-olwidget…

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

...