2012-04-11 22 views

उत्तर

15

उपयोग point1.distanceTo(point2)

var Geographic = new OpenLayers.Projection("EPSG:4326"); 
var Mercator = new OpenLayers.Projection("EPSG:900913"); 


function distanceBetweenPoints(latlng1, latlng2){ 
     var point1 = new OpenLayers.Geometry.Point(latlng1.lon, latlng1.lat).transform(Geographic, Mercator); 
     var point2 = new OpenLayers.Geometry.Point(latlng2.lon, latlng2.lat).transform(Geographic, Mercator);  
     return point1.distanceTo(point2); 
    } 
3

आपको लगता है कि विधि का उपयोग कर सकते हैं अगर openlayers3

Instanciate दो अंक के बीच एक ol.geom.LineString वस्तु का उपयोग करने और की अवधि की गणना लाइन:

 this.distanceBetweenPoints = function(latlng1, latlng2){ 
      var line = new ol.geom.LineString([latlng1, latlng2]); 
      return Math.round(line.getLength() * 100)/100; 
     }; 

फिर आप कुछ गठन का उपयोग कर एक पठनीय मूल्य प्राप्त कर सकते हैं:

 this.formatDistance = function(length) { 
      if (length >= 1000) { 
       length = (Math.round(length/1000 * 100)/100) + 
       ' ' + 'km'; 
      } else { 
       length = Math.round(length) + 
       ' ' + 'm'; 
      } 
      return length; 
     } 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^