0
緯度/経度のペアのリストから、長いです 。ポイント42、-72は、42、-71に最も近く、したがって出力= 42であり、これは、{42_-72,42、-75,43、-76}および所定のポイント42のリストに対して、-72、 > 42、-72。緯度/経度を指定すると、Cの緯度/経度のリストから最も近い緯度/経度のペアが見つかります。
緯度/経度のペアのリストから、長いです 。ポイント42、-72は、42、-71に最も近く、したがって出力= 42であり、これは、{42_-72,42、-75,43、-76}および所定のポイント42のリストに対して、-72、 > 42、-72。緯度/経度を指定すると、Cの緯度/経度のリストから最も近い緯度/経度のペアが見つかります。
まず、2点間の距離を取得できるメソッドを作成します。いずれの直角三角形でもa^2 + b^2 = c^2
、点P1
から点P2
までの距離がc
であるとすると、X
とY
の座標を知っているので、この式を使用して2点間の距離を求めることができます。距離a
はP2.X
とP1.X
との間の差であり、距離b
はP2.Y
とP1.Y
との差である:
private static double GetDistance(Point a, Point b)
{
return Math.Sqrt(Math.Pow(b.X - a.X, 2) + Math.Pow(b.Y - a.Y, 2));
}
その後、我々は、目標点を取り込む方法と候補点とリターンのリストを作成することができターゲットからの最短距離の候補:
private static Point GetClosestPoint(Point target, List<Point> candidates)
{
if (candidates == null) throw new ArgumentNullException(nameof(candidates));
if (!candidates.Any()) throw new ArgumentException("The candidates list is empty.");
var minDistance = double.MaxValue;
var closestPoint = new Point();
foreach (var candidate in candidates)
{
var distance = GetDistance(target, candidate);
if (distance > minDistance) continue;
minDistance = distance;
closestPoint = candidate;
}
return closestPoint;
}
こんにちは!あなたはこれまで何のコードを持っていますか?それに何の問題がありますか? – tehDorf
ネクタイの場合に緯度または経度の優先順位を設定しますか?または両方を返すのですか? –
グラフ上のポイントとしてそれらを踏み、ターゲットポイントから各候補ポイントまでの距離を計算し、次に最短距離を持つポイントを返すことは論理的です。 –