2016-06-13 11 views
0

LAT、LONG座標形式の点が他の点に近いかどうかを特定するにはどうすればよいですか?指定された座標に最も近い点を見つける方法

-38.9086621 ,-68.082214

距離の1km以内にあります:

が言う私はに近いすべてのポイントを見つけたいとします。私はすでにある象限で座標を見つける方法を知っていますが、ある点の近くで象限を見つける方法ではありません。

+1

あなたは精度が必要な場合は、(そのようなEPSGなど:3857)メトリック基準システムに地理座標を変換する必要があり、その後、あなたは簡単な数学を使用することができます。 proj4js(http://proj4js.org)をご覧ください。 –

+0

@MarcCompte距離を測定する際にどのような精度向上が可能ですか?測地作業の角度や距離の測定では、ECEFなどのグローバル座標系で参照フレームについての誤差を避けるために、補償、測定誤差などが優先されます。 –

+1

@JoseHermosillaRodrigo距離について話します。 2つの点の間の距離は、平面上の尺度です。地理座標は3次元です。 3Dからプレーンに変換する以外にメトリックの距離を計算する方法は他にありません。もちろん、基本三角法を使っても構いませんが、地球は完全球であると仮定していますが、これは楕円(地球の3D形状のより複雑な近似)を使うほど正確ではありません。これが、レーザ測定を使用する以外に、高精度の距離計算を達成するための変換が重要である理由です。 –

答えて

0

指定された2つの座標間の距離を計算するために、haversine formularを使用できます。計算された距離は、与えられた座標(ビーライン)間の直接接続です。

JavaScriptの例(Source):

var R = 6371e3; // meters 
var lat1Radians = lat1.toRadians(); 
var lat2Radians = lat2.toRadians(); 
var deltaLat = (lat2-lat1).toRadians(); 
var deltaLon = (lon2-lon1).toRadians(); 

var a = Math.sin(deltaLat/2) * Math.sin(deltaLat/2) + 
     Math.cos(lat1Radians) * Math.cos(lat2Radians) * 
     Math.sin(deltaLon/2) * Math.sin(deltaLon/2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 

var d = R * c; 
+0

変数名にラテン文字以外の文字を使用しないでください。多くの問題を引き起こす可能性があります;) – veritas

+1

ソースからコピーしただけですが、修正されました。ありがとう – KRONWALLED

関連する問題