質問

Wi-Fiを使用して距離を調べ、iPhoneの地図上にマーカーをプロットしたいと考えています。

それで、そのためのアイデアやコードはありますか?

役に立ちましたか?

解決

最初にあなたの質問を読んだとき、私はあなたがアクセスポイントまでの距離について言及していると思いました。それについてたくさん書いた後、あなたが別のことを言いたいのかもしれないことに気づきました。それがあなたが言いたいことである場合は、読み続けてください...

構成を考慮すると、次のようになります。

  • 単一の固定受信機 (携帯電話を修理する必要はありませんが、瞬時の測定を必要とする場合は事実上修理した方が良いです)
  • 単一の固定基地局 (アクセス ポイント)
  • 受信機の全方向性アンテナ
  • 802.11 b/g プロトコル

これはできません。たとえそこで働いていたとしても、 PHY レベル、これは解決不可能な問題です。もう少し実現可能にするには、次のことを行う必要があります。 三角測量 2 つ (できればそれ以上) の基地局に対する受信機の位置。平 それから これはまだ難しい問題です。RF 波は光の速度で伝わるため、往復の信号伝播遅延を測定するためにリレー技術を使用しても、良好な精度は得られません (受信機は非常に高速に動作する必要があり、その場合、 マルチパス 問題...)。繰り返しますが、これはすべて、基本的に独自の RF ハードウェアを構築していることを前提としていますが、明らかに iPhone 用に構築するつもりはありません。

基地局の位置を追跡するための最善の策は、電話の位置を変更したときに WiFi 信号の強度を記録することです。「位置を変更する」ということは、基本的にそのエリアを一掃する必要があることになります。いくつかの優れたヒューリスティックと、距離に関係しない信号劣化に対処する堅牢性があれば、まともな精度 (おそらく 10 メートル程度) を達成できます。

他のヒント

ちょうどあなたのネットワークカードからの信号強度を使用してアクセスポイントに(メートルまたはフィートで)正確な距離を取得することはできません。

それはあなたの場所の座標を与えることができ、AppleのCoreLocationフレームワークを使用してください。私はiPhoneのドキュメントへのアクセスを持っていないとして、私はそれにリンクすることはできません。

ここで http://www.mathforum.com/library/drmath/ビューは/あなたはGPSからの2つの位置の間の距離を計算するための方程式を見つけることができを51711.html。これは私が(それはメートル法にスケーリングです)

この時に作成したC#のコードです
    private double Distance(GpsPosition p1, GpsPosition p2)
    {
        // http://www.mathforum.com/library/drmath/view/51711.html

        double A = p1.Latitude / 57.29577951;
        double B = p1.Longitude / 57.29577951;
        double C = p2.Latitude / 57.29577951;
        double D = p2.Longitude / 57.29577951;

        if((A==C) && (B==D))
            return 0;

        if((Math.Sin(A)*Math.Sin(C)+Math.Cos(A)*Math.Cos(C)*Math.Cos(B-D)) > 1.0)
            return 6372.72 * Math.Acos(1);
        else
            return 6372.72 * Math.Acos(Math.Sin(A) * Math.Sin(C) + Math.Cos(A) * Math.Cos(C) * Math.Cos(B - D));
    }

おそらくあなたは3つの以上のアクセスポイントを使用して大まかな距離を得ることができるようになります。今3つのGSM携帯電話基地局を使用する移動加入者までの距離を取得する技術がある。

あなたがレシーバにエミッタからのRF伝播モデルを使用して距離をうまくすることができます受け取った電源を使用します。あなたが場所だけではなく、距離が欲しいようしかし、それが鳴ります。

フリースペースパス損失モデル:

http://en.wikipedia.org/wiki/Free-space_path_lossする

あなたは何をここで達成しようとしている?

あなたは、iPhoneを使用してマップ上の自分の位置をプロットしようとしている場合は、

この機能は、既にGPS受信機を持っており、「箱の外」ということを行いますiphoneのの一部です。

あなたが無線LANを使用してあなたのラップトップの位置を見つけ、iphoneにその場所を送信しようとしている場合は、

あなたはそれは多くの作業なしで、おそらくなんとかではありません解決するために非常に困難な問題を持っています。

がありGSMマストから自分の位置を三角測量するためにあなたを可能にするための施設であるが、緯度/ long型を知っていると、これらは固定位置にあります。 WiFiアクセスポイントは不可能/非常に困難になりますので、それらから三角測量地理的な場所のデータベースを持っていません。

あなたは自分の位置を追跡するために、このようなこののようにサードパーティのサービスを使用することができますあなたが大規模な都市であり、それはあなたが追跡しているが何であれにGSMモデムを持つあなたを必要とする場合を除きGSMを使用すると、しかし、これらは乱暴に不正確である。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top