2012-04-11 105 views

答えて

15
あなたがインスタンス化二点間ol.geom.LineStringオブジェクトを openlayers3

を使用する場合、そのメソッドを使用しての長さを計算することができる

使用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

行:

 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; 
     }