我正在olwidget内使用django绘制一些地图。在我的一种表单中,我要求用户提供位置和半径。使用olwidget提供的OpenLayers映射输入位置,并且半径是jquery-ui的滑块。
我想做的是在地图上绘制一个半径圆,该圆随用户操作滑块而更新。
我无法获得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吗?
谢谢
最佳答案
我认为您也许可以覆盖呈现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>
希望这对您有用!