0

私はコードを探しているのではなく、プロジェクトの特定の側面に関するアドバイスを探しています。

座標と建物名を含むXMLファイルがあり、その人がいる場所の座標をキャプチャできるようにしたいです(モバイルアプリケーションを作成するので、これで問題ありません)。

上記のシナリオは、C#でLINQステートメントを使用して可能ですか?もしそうなら、近い試合をすることは可能ですか?つまり、人物が正確に座標にいない場合は、最も近い人物を表示します。

私は特にコードを探しているわけではありません。LINQに関するヒント、ヒント、または高度なチュートリアルが役立つでしょう。

ありがとう

4

2 に答える 2

3

System.Device.Location.GeoCoordinateこれにはクラスを使用できます

List<GeoCoordinate> listTakenFromXml = ......
double lat = ......
double lon = ........
var nearest = new GeoCoordinate(lat, lon).NearestPoint(listTakenFromXml);

public static class SoExtensions
{
    public static GeoCoordinate NearestPoint(this GeoCoordinate loc, IEnumerable<GeoCoordinate> coords)
    {
        GeoCoordinate minLoc = null;
        double minDist = double.MaxValue;
        foreach (var c in coords)
        {
            var dist = c.GetDistanceTo(loc);
            if ( dist < minDist)
            {
                minDist = dist;
                minLoc = c;

            }
        }
        return minLoc;
    }
}
于 2013-01-18T18:22:40.277 に答える
0

緯度/経度ポイント間の距離、方位などを計算し、状況に最適な方法を使用するを参照してください。リストに一連のポイントがある場合に計算が完了すると、LinqtoObjectの拡張機能が必要に応じてロジックを決定するのに役立ちます。

于 2013-01-18T18:26:50.760 に答える