2011-08-21 4 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> 

올빼미가지도에 첨부 된 사용자 정의 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