2011-08-21 29 views
1

我在django內部使用olwidget來繪製一些地圖。在我的一種形式中,我要求用戶提供位置和半徑。該位置是使用olwidget提供的OpenLayers地圖輸入的,半徑是jquery-ui中的滑塊。在django的olwidget上繪製半徑

我想要做的是在地圖上繪製一個半徑圓,用戶在操作滑塊時進行更新。

我無法獲得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附加到地圖?

謝謝

回答

0

我想你可能會覆蓋呈現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> 

我希望這適用於你!

+0

我不得不在項目中重寫它,但它似乎工作!謝謝 – tecywiz121