2015-03-21 14 views
0

Я пытаюсь создать элемент управления измерениями в Openlayers, используя функцию OpenLayers.Control.Measure, которая вернет область функций в реальном времени при перемещении мыши. Я много читаю об этом, и многие говорят, что это достигается с помощью свойства immediate элемента управления OpenLayers.Control.Measure, но я не могу заставить его работать. При использовании свойства immediate я получаю только область функции, когда создаю новые вершины ... не просто перемещая мышь. Я бы очень признателен за вашу помощь, поскольку я просто не могу найти то, что я делаю неправильно. Вот код, который я использую:OpenLayers 2 - измерение «немедленного»

<!DOCTYPE html> 

<html> 
<head> 
<script src="Scripts/jQuery-213/jquery-2.1.3.min.js"></script> 
<script src="http://maps.google.com/maps/api/js?sensor=false&v=3.2"> </script> 
<script src="Scripts/OpenLayers-2.10/OpenLayers.js"></script> 
<style type="text/css"> 
body { 
height: 100%; 
width: 100%; 
z-index: 1; 
} 
#map { 
    height: 100%; 
    min-height: 300px; 
    width: 100%; 
    position: absolute; 
    top: 0; 
    left: 0; 
    margin: 0; 
    z-index: 2; 
} 
#area{ 
    position: absolute; 
    top: 5px; 
    right: 5px; 
    width: 100px; 
    height: 50px; 
    color: blue; 
    background-color: white; 
    z-index: 3; 
} 
</style> 
<script type="text/javascript"> 
    var map; 
    var google_layer; 

    $(document).ready(function() { 

     map = new OpenLayers.Map("map"); 
     map.addControl(new OpenLayers.Control.MousePosition()); 
     google_layer = new OpenLayers.Layer.Google("Google Hybrid", { 
      type: google.maps.MapTypeId.HYBRID 
     }); 
     map.addLayer(google_layer); 
     map.setCenter(new OpenLayers.LonLat(2004093, 8234302), 12); 

     var vectorLayer = new OpenLayers.Layer.Vector('Vector Layer'); 
     map.addLayer(vectorLayer); 


     var control_measurepoly = new OpenLayers.Control.Measure(
       OpenLayers.Handler.Polygon, { 
        persist: true, 
        immediate: true, 
        eventListeners: { 
         "measurepartial": displayArea 
        } 
       }); 

     function displayArea(event){ 
      var geometry = event.geometry; 
      var measure = event.measure; 
      $("#area").html(measure); 
     }; 

     map.addControls([control_measurepoly]); 
     control_measurepoly.activate(); 

    }); 
</script> 
</head> 

<body> 
<div> 
    <div id="map"></div> 
    <div id='area'>0</div> 
</div> 
</form> 
</body> 
</html> 

Имейте большой уикенд! Эмиль

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^