2017-10-09 3 views
0

私はポリラインの100年代とにGeoJSONファイルを持って、 例えば:coordonatesを使って2点の距離を計算するには?

{ 
    "type":"MultiLineString", 
    "coordinates": 
    [ 
    [ 
     [73.970889292119,15.272263607379], 
     [73.970743508934,15.272184655773] 
    ] 
    ] 
} 

がどのように私はキロでポリラインの距離を計算するか、またはどのようにリーフレットで同じことを計算しますか?

+1

この - https://stackoverflow.com/questions/31221088/how-to-calculate-the-distance-of-a-polyline-in- leaflet-like-geojson-io - 助けてもらえます –

+0

https://stackoverflow.com/questions/33939754/layer-circumference-length-in-leaflet-js/33942460#33942460を参照してください。さらにカスタマイズする必要がありますこれを 'MultiLineString'に適合させます。 – ghybs

答えて

0

あなたは私たちがcoordonatesポイントのを知っているときに、2つのポイントから距離を見つけるためにmath式を適用することができpolylinesの配列を考えます。

enter image description here

let polylines=[{ 
 
    "type":"MultiLineString", 
 
    "coordinates": 
 
    [ 
 
    [ 
 
     [73.970889292119,15.272263607379], 
 
     [73.970743508934,15.272184655773] 
 
    ] 
 
    ] 
 
},{ 
 
    "type":"MultiLineString2", 
 
    "coordinates": 
 
    [ 
 
    [ 
 
     [34.970889292119,15.272263607379], 
 
     [67.970743508934,67.272184655773] 
 
    ] 
 
    ] 
 
}]; 
 
polylines=polylines.map(function(item){ 
 
    let latitude1=item.coordinates[0][0][0]; 
 
    let longitude1=item.coordinates[0][0][1]; 
 
    let latitude2=item.coordinates[0][1][0]; 
 
    let longitude2=item.coordinates[0][1][1]; 
 
    let distance=Math.sqrt(Math.pow((latitude1-latitude2),2)+Math.pow((longitude1-longitude2),2)); 
 
    return {type:item.type, distance:distance}; 
 
}); 
 
console.log(polylines);

+0

平面のジオメトリを仮定します。 GeoJSON形式は、地球上のフィーチャ、すなわち多かれ少なかれ球形のフィーチャに一般的に使用されることに注意してください。 – ghybs

関連する問題