在Django中使用olwidget绘制半径

2024-06-07 17:40:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用django内部的olwidget绘制一些地图。在我的一个表单中,我要求用户提供位置和半径。位置是使用olwidget提供的OpenLayers映射输入的,radius是jqueryui中的滑块。在

我想做的是在地图上画一个半径圆,当用户操纵滑块时会更新。在

我无法获得对olwidget创建的OpenLayers映射的引用。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?在

谢谢


Tags: 用户nameidzonenewgoogle地图半径
1条回答
网友
1楼 · 发布于 2024-06-07 17:40:55

我认为您可以覆盖呈现OpenLayers映射的模板。你可以通过创建“模板/olwidget/multi_layer”来实现_地图.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>

我希望这对你有用!在

相关问题 更多 >

    热门问题