Wi-Fiを使用して距離を見つけ、iPhoneの地図にマーカーをプロットしたい。
それで、私がそのために得ることができるアイデアやコードはありますか?
Wi-Fiを使用して距離を見つけ、iPhoneの地図にマーカーをプロットしたい。
それで、私がそのために得ることができるアイデアやコードはありますか?
あなたの質問を最初に読んだとき、私はあなたがアクセスポイントまでの距離について言及していると仮定していました。それについてたくさん書いた後、私はあなたが何か他のものを意味するかもしれないことに気づきました。それがあなたの言いたいことである場合は、読み続けてください...
構成が与えられた場合:
これはできません。PHYレベルで作業している場合でも、これを解決することは不可能な問題です。少し実行可能にするには、2つの(ただしできればそれ以上の)基地局に対する受信機の位置を三角測量する必要があります。それでも、これはまだ難しい問題です。RF波は光速で伝わるため、リレー技術を使用して往復信号伝搬遅延を測定しても、精度は高くありません(受信機は非常に高速に動作する必要があり、マルチパスの問題が発生します...)。繰り返しになりますが、これはすべて、基本的に独自のRFハードウェアを構築していることを前提としていますが、これは明らかにiPhoneでは実行しません。
基地局の場所を追跡するための最善の策は、電話の位置を変更するときにWiFi信号強度を記録することです。「位置を変更する」ことにより、基本的にその領域を一掃する必要があります。いくつかの優れたヒューリスティックと、距離に関係のない信号劣化を処理するための堅牢性により、まともな精度(おそらく10メートル程度)を達成できます。
ネットワーク カードからの信号強度だけを使用して、アクセス ポイントまでの正確な距離 (メートルまたはフィート単位) を取得することはできません。
ここhttp://www.mathforum.com/library/drmath/view/51711.htmlで、GPSから2つの場所の間の距離を計算するための方程式を見つけることができます。これは私がこれに基づいて作成した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));
}
Apple の CoreLocation フレームワークを使用すると、現在地の座標を取得できます。iPhoneのドキュメントにアクセスできないため、リンクできません。
ここで何を達成しようとしていますか?
あなたがiPhoneを使って地図上に自分の位置をプロットしようとしているなら、この機能はすでにGPS受信機を備えたiPhoneの一部であり、「箱から出して」それを行います。
Wi-Fiを使用してラップトップの位置を見つけ、その位置をiPhoneに送信しようとしている場合は、解決するのが非常に難しい問題があります。これは、多くの作業なしではおそらく実行できません。
GSMマストから自分の位置を三角測量できるようにする機能がありますが、これらは既知の緯度/長さの固定位置にあります。Wifiアクセスポイントには地理的な場所のデータベースがないため、それらから三角測量することは非常に困難/不可能です。
このようなサードパーティのサービスを使用して、GSMを使用して自分の位置を追跡できますが、大都市にいて、追跡しているものにGSMモデムが必要な場合を除いて、これらは非常に不正確です。
受信電力を使用すると、エミッタから受信機までのrf伝搬モデルを使用して距離を計算できます。ただし、距離だけでなく、場所も必要なようです。
自由空間経路損失モデル:
3 つ以上のアクセス ポイントを使用すると、おおよその距離を取得できる可能性があります。現在、3 つの GSM モバイル基地局を使用してモバイル加入者までの距離を取得する手法があります。