3

我想使用 wi-fi 查找距离并在 iPhone 的地图上绘制标记。

所以我能得到任何想法或代码吗?

4

7 回答 7

10

在第一次阅读您的问题时,我假设您指的是到接入点的距离。在写了一堆关于那个之后,我意识到你可能意味着别的东西。如果这就是你的意思,请继续阅读......

鉴于您的配置:

  • 单个固定接收器(您的手机不必固定,但如果您正在寻找瞬时测量,它可以有效地固定)
  • 单个固定基站(接入点)
  • 接收器上的全向天线
  • 802.11 b/g 协议

这是无法做到的。即使您在PHY级别工作,这也是一个不可能解决的问题。为了使其更可行,您需要对接收器相对于两个(但最好更多)基站的位置进行三角测量。即使这样,这仍然是一个难题。RF 波以光速传播,因此使用中继技术来测量往返信号传播延迟不会提供良好的精度(接收器必须运行得非常快,然后就会出现多路径问题......)。同样,这一切都假设您基本上是在构建自己的 RF 硬件,显然您不会为 iPhone 做这件事。

追踪基站位置的最佳选择是在更改手机位置时记录 WiFi 信号强度。通过“改变位置”,您基本上必须扫过该区域。通过一些良好的启发式方法和处理与距离无关的信号衰减的鲁棒性,您可以获得不错的准确度(可能在 10 米左右)。

于 2009-03-26T07:47:39.977 回答
2

仅使用网卡的信号强度无法获得到接入点的准确距离(以米或英尺为单位)。

于 2009-03-26T07:22:15.730 回答
1

使用 Apple 的 CoreLocation 框架,它可以为您提供您所在位置的坐标。我无法链接到它,因为我无权访问 iPhone 文档。

于 2009-03-26T07:56:45.803 回答
1

在这里http://www.mathforum.com/library/drmath/view/51711.html您可以找到方程式来计算 GPS 两个位置之间的距离。这是我在此基础上创建的 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));
    }
于 2009-03-26T09:19:59.847 回答
0

可能您将能够使用 3 个或更多接入点获得粗略的距离。现在有一种技术可以使用 3 个 GSM 移动基站来获取到移动用户的距离。

于 2009-03-26T07:25:36.160 回答
0

使用接收到的功率,您可以使用射频传播模型计算从发射器到接收器的距离。但是,听起来您想要的是位置,而不仅仅是距离。

自由空间路径损失模型:

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

于 2009-03-26T07:46:03.333 回答
0

你想在这里达到什么目的?

如果您尝试使用 Iphone 在地图上绘制您的位置,那么此功能已经是 Iphone 的一部分,它具有 GPS 接收器,并且可以“开箱即用”。

如果您尝试使用 wifi 查找笔记本电脑的位置并将该位置发送到 iphone,那么您将遇到一个相当困难的问题,如果没有大量工作,这可能是无法解决的。

有一些设施可以让您从 GSM 桅杆上对您的位置进行三角测量,但这些设施位于已知纬度/经度的固定位置。Wifi 接入点没有地理位置数据库,因此从这些位置进行三角测量将非常困难/不可能。

您可以使用诸如此类的 3rd 方服务使用 GSM 跟踪您的位置,但是这些非常不准确,除非您在大城市并且需要您在所跟踪的任何内容中都有 GSM 调制解调器。

于 2009-03-26T08:05:53.927 回答