0

私は現在、ユーザーの現在の場所と最寄りの場所 (電話に保存されている緯度、経度のポイント) を特定するために必要な部分で構成される IPhone 用のモバイル アプリケーションを開発しています。次の質問があります。

1-アプリケーションがユーザーの位置を特定できるように、ユーザーはインターネットに接続する必要がありますか? GPS は、ユーザーの現在地を緯度、経度で判断するのに十分ではありませんか?

2-アプリケーションに緯度経度としていくつかの場所が保存されるため、インターネットに接続せずに、ユーザーの現在の場所から最も近い場所 (たとえば 5 km 以内) を特定することは可能ですか?

上記の答えを絞り込むためにコードサンプルを提供できれば、それは高く評価されます。

どうもありがとう

4

2 に答える 2

1

最初の質問ですが、現在地を取得するためにインターネット接続は必要ありません。

2 番目の質問については、あなたの位置 (緯度、経度) の座標を取得できれば、座標を we will be having some locations as lat,long stored in the application計算してそれらの間の距離を見つけることができます。

座標からの距離を計算するには、次の関数を使用します

 public static float distFrom(float lat1, float lng1, float lat2, float lng2) {
    double earthRadius = 6371;
    double dLat = Math.toRadians(lat2-lat1);
    double dLng = Math.toRadians(lng2-lng1);
    double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
               Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
               Math.sin(dLng/2) * Math.sin(dLng/2);
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
    double dist = earthRadius * c;

    return(float)(dist);
    }

hasersine 式の Java 実装です。距離を見つけるために使用します。

于 2012-10-10T11:28:53.710 に答える
0

はい、Google API を使用して 5 マイル以内の最寄りの位置情報を見つける必要があります。この API を使用すると、すべての国情報、最寄りの場所などを見つけることができます。

このリンクを使用してください:- http://maps.google.com/maps/geo?q=%f,%f&output=json&oe=utf8&sensor=true_or_false&key=ABQIAAAAO_WEDXjKUGDDHu8iB2FQ-xTFGipc9T1i1tjtezgvz0dWKwv3jxTjn5y1VrjIixtSrXmeMwiaCfxS8g

于 2012-10-10T11:40:08.630 に答える