2017-12-21 31 views
0

こんにちは私は現在、三角形を作るために2つの長い/緯線を通って線を描こうとしています。これまでのところ、私は線を引くようにしましたが、線は垂直ではなく、歪んで見えます。ここに私のコードは次のとおりです。2つのlong/lat点の真ん中を通る垂線を描く

startPosition = [-0.17640, 51.426700]; 
    endPosition = [0.17640, 51.796700]; 

    triangleSizeY = (endPosition [1] - startPosition[1])/6; 
    /*subtract 
    end from start to work out direction and also use this divided by 6 to 
    get distance*/ 
    triangleSize *= -1; 

    triangleSizeX = (endPosition [0] - startPosition[0])/6; 
    /*subtract 
    end from start to work out direction and also use this divided by 6 to 
    get distance*/ 
    triangleSize *= -1; 

    var cx = (startPosition[0] + endPosition[0])/2; 
    var cy = (startPosition[1] + endPosition[1])/2; 
    var dx = (endPosition[0] - startPosition[0])/2; 
    var dy = (endPosition[1] - startPosition[1])/2; 
    positions[0] = [midPoint[0] + triangleSizeX, midPoint[1] + 
    triangleSizeY]; 
    positions[1] = [cx - dy, cy + dx]; 
    positions[2] = [cx + dy, cy - dx]; 

これは、それがどのように見えるかです:

enter image description here

答えて

0

まず、緯度/経度あなたはリニア型の距離を行うことができないような角度です。

  1. 垂線を描く2つの緯度/経線のペア間の距離を計算します。
  2. 上記のステップから計算した距離の半分をとり、中点範囲を取得します。
  3. 2つの緯度/経度のペアの間のベアリングを計算します。 (2 lat/lonからベアリングを計算する際の参考文献を参照)
  4. ハーフ・ディスタンスとベアリングを使用すると、中間点の緯度/経度を計算できます。これは、範囲と方位に基づいて緯度/経度を計算することと呼ばれます。
  5. ステップ3でベアリングから90度の角度を追加/減算することで、中間点から垂直に進むことができます。新しい緯度/経度を範囲/ベアリングのように計算したい範囲を決めます手順4で

このサイト(https://www.movable-type.co.uk/scripts/latlong.html)には、必要な計算があります。また、距離が比較的小さいので、Haversine上の等角近似を使用して距離計算を行うことができます。

関連する問題