ビン・マップと2つのポイントがある: Point1、Point2と私はこれら2つのポイント間の距離を計算したいですか?それは可能ですか? と私はポイント1とポイント2とポイント2の間のパスの2/3に円を配置したい場合...どのように私はそれを作ることができますか?ビン地図の2つのポイント間の距離を計算する
答えて
Haversine、さらにはVincentyの式を参照してください。
次のコードは、距離を取得するためにhaversinesの方法を使用しています。
public double GetDistanceBetweenPoints(double lat1, double long1, double lat2, double long2)
{
double distance = 0;
double dLat = (lat2 - lat1)/180* Math.PI;
double dLong = (long2 - long1)/180 * Math.PI;
double a = Math.Sin(dLat/2) * Math.Sin(dLat/2)
+ Math.Cos(lat1/180* Math.PI) * Math.Cos(lat2/180* Math.PI)
* Math.Sin(dLong/2) * Math.Sin(dLong/2);
double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
//Calculate radius of earth
// For this you can assume any of the two points.
double radiusE = 6378135; // Equatorial radius, in metres
double radiusP = 6356750; // Polar Radius
//Numerator part of function
double nr = Math.Pow(radiusE * radiusP * Math.Cos(lat1/180 * Math.PI), 2);
//Denominator part of the function
double dr = Math.Pow(radiusE * Math.Cos(lat1/180 * Math.PI), 2)
+ Math.Pow(radiusP * Math.Sin(lat1/180 * Math.PI), 2);
double radius = Math.Sqrt(nr/dr);
//Calculate distance in meters.
distance = radius * c;
return distance; // distance in meters
}
あなたはに関する情報hereで良いサイトを見つけることができます。
より正確な結果が必要な場合、または数学演算を実行する場合(たとえば、円をスペリオ/投影に変換する場合)、地理図書館を(再)投影および計算操作に使用できます。 DotSpatialまたはSharpMapとサンプル/ユニットテスト/ソースを見てください...これはあなたの問題を解決するのに役立ちます。
とにかくgeodesic distanceとbearingがわかっている場合は、結果のターゲット位置(円の中心)がどこにあるかを計算することもできます。 Vincenty'sアルゴリズムの「直接問題」を参照してください。また、useful algorithm implementations/silver
GIS Stackexchangeに質問を投稿することも考えられます。彼らはあなたのようなGISに関連する問題について議論します。 calculating lat long x-miles from pointの質問をご覧ください(既に距離を知っているので)distance calculationsについてのディスカッションをご覧ください。この質問は問題how to draw a point on a line in a given distanceに関連しており、ほぼ同じです(中心と半径が必要なため)。
もう1つの方法は、ArcGIS API for Silverlightを使用してBing Mapsを表示することです。オープンソースであり、そこに必要なことを学ぶことができます。サンプル内のユーティリティのサンプルタブを参照してください。
すでに言及したように:this pageをご覧になり、問題に関する詳細情報を入手してください。ここで、数式、JavaScriptコード、および目的地点を特定の距離だけ計算し、出発地からの方位を計算するためのExcelサンプルを検索します(見出しを参照)。
コードをC#-worldに「変換」するのは難しいことではありません。
Microsoftには、Haversine式を使用するGeoCoordinate.GetDistanceTo Methodがあります。
他の実装では、小さすぎる距離のNaNを返します。私はまだ組み込み関数に関する問題に遭遇していません。
ああ、前に気付かなかった。 Thanx – Beachwalker
APIがちょうど大きくなっています!それも私には分かりませんでした。私は自分のプロジェクトで取り組むために自分の共通のlibにHaversine実装を追加しました。私はそれを知っている、甘い削除することができますね! – Depechie
Windows Storeアプリケーションでサポートされていないようです... – LowDev1
- 1. 地図:2ポイント間の距離を計算するのは高度ですか?
- 2. 計算フュージョンテーブルのポイント間の距離
- 3. 2つの地理的地点間の距離を計算する方法
- 4. 2つのGPSポイント間の(x、y)の距離を計算する
- 5. Googleマップの2つのポイント間の距離を計算する方法は?
- 6. 地球儀上の2つの座標間の距離を計算する
- 7. 2つのヒストグラム間の距離を計算する方法
- 8. 2つの間の距離を計算する
- 9. 地図描画パスと距離の計算
- 10. 2つのポイント間の距離と距離が最も離れています
- 11. 2人のユーザー間の社会的距離を計算する
- 12. 2点間の距離を計算する
- 13. lonとlatの2つのセットの間の距離を計算する
- 14. 2点間の測地線距離
- 15. 5つのマーカー間の距離を計算する方法は?
- 16. 2ジオポイントで距離を計算する
- 17. javascriptを使用して2つのポストコード間の距離を計算する
- 18. 2つのポイントの間の走行距離を取得
- 19. 2地点間の地理的距離を計算するための迅速な方法
- 20. 道路に基づく2つの場所間の距離を計算する
- 21. OpenLayers:2点間の距離の計算方法は?
- 22. 2点間の距離の計算(緯度、経度)
- 23. 2点間の距離計算時のコンパイルエラー
- 24. 2つの地点間の距離 - Google Maps
- 25. Javaの2つの図形/領域間の距離は?
- 26. 90度の離間距離を持つ2つのWiimoteを使って3Dポーズを計算する
- 27. Googleマップや他の地図サービス上の複数のポイントの走行距離データ
- 28. ポリゴンから地理距離を計算する方法は?
- 29. Javaの複数のジオロケーション間の距離を計算する
- 30. 距離を計算するアンドロイドのBluetoothデバイスの間
+1。 Haversineは最も一般的であり、任意の2点間のおおよその距離を決定するのに完全に適しています。 Vincentyは、地球の形状が完全球ではなく回転楕円体であると仮定しているため、より良い近似を提供します。最後のオプションは、Microsoft.SqlServer.Types.dllライブラリをインポートし、SqlGeographyデータ型のSTDistance()メソッドを使用することです。これは、楕円体モデル(WGS84など)を使用する際に最も正確な結果をもたらします。これは、SQL Serverが地理データ型の場合とまったく同じです。 –
遠方のパーツにはうまくいきますが、point1とpoint2の間の距離の2/3にどのように円を表示できますか? – AboKevo
結果はメートル、KM ....ですか? – toroveneno