Рисование радиуса на olwidget в Джанго - PullRequest
1 голос
/ 21 августа 2011

Я использую olwidget внутри django , чтобы нарисовать несколько карт. В одной из моих форм я спрашиваю у пользователя местоположение и радиус. Местоположение вводится с использованием карты OpenLayers, предоставленной olwidget, а радиус - это ползунок из jquery-ui.

Я хотел бы нарисовать на карте радиусный круг, который обновляется, когда пользователь манипулирует ползунком.

Мне не удалось получить ссылку на карту OpenLayers, которую создает olwidget. Исходный код, который генерирует olwidget, выглядит следующим образом:

<textarea id="id_zone_centroid_zone_centroid" rows="10" cols="40" name="zone_centroid">SRID=4326;POINT (-75.6981940000000009 45.4115719999999996)</textarea>
<script type="text/javascript">
    new olwidget.Map("id_zone_centroid", [
            new olwidget.EditableLayer("id_zone_centroid_zone_centroid", {"geometry": "point", "name": "centroid"})

        ], 
        {"layers": ["google.hybrid", "google.streets"], "mapOptions": {"controls": ["LayerSwitcher", "Navigation", "PanZoom", "Attribution"]}, "mapDivStyle": {"width": "500px", "height": "400px"}}
    );
</script>

Есть ли способ заставить olwidget выводить пользовательский javascript, прикрепленный к карте?

Спасибо

1 Ответ

0 голосов
/ 21 августа 2011

Я думаю, вы можете переопределить шаблон, который отображает карту OpenLayers. Вы можете сделать это, создав "templates / olwidget / multi_layer_map.html" в своем приложении. Там вам, вероятно, понадобится сделать что-то вроде этого (адаптировано из оригинала):

<div id="{{ id }}"></div>
{{ layer_html|join:"" }}
<script type="text/javascript">
    var map = new olwidget.Map("{{ id }}", [
            {{ layer_js|join:"," }}
        ], 
        {{ map_opts|safe }}
    ); // got the ref now :)

    // do your customization here
</script>

Я надеюсь, что это работает для вас!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...