我想找到距离使用无线网络连接和绘图上的标记图在iPhone。

因此,任何想法或码我能得到吗?

有帮助吗?

解决方案

在一读你的问题,我是在假设你指的是距离的接入点。后编写一堆有关的是,我意识到你可能意味着别的东西。在情况下这是什么你的意思是,继续读书...

给你配置:

  • 一个单一的固定接收器 (你的手机没有被固定的,但它实际上是固定的,如果你在寻找的瞬间量测量)
  • 一个单一的固定基地站(接入点)
  • 全向天线上接收器
  • 802.11b/g议定书》

这个不能做。即使你的工作 PHY 级,这是一个不可能解决的问题。让它稍微更加可行,你需要 作三角测量 在位置的相对收到的两个(但最好更多)的基站。甚至 然后 这仍然是一个困难的问题。射频波旅行以光的速度,所使用的中继技术测量往信号的传播延迟不会得到良好的准确性(接收器已经运作速度极快,然后还有 多径 问题...).再次,这是所有假设你基本上建立自己的射频的硬件,这显然你不是要做对的。

你最好的选择,以追踪的位置的基站记录的无线信号强度为你改变位置的电话。由'的位置改变,你将基本上必须扫周围地区。有一些很好的启发,并坚固性,以处理非距离退化相关的信号,你就能实现体面的精确度(可能是在10米)。

其他提示

这是不可能通过仅使用信号强度从网卡到达接入点的准确的距离(以米或英尺)。

使用苹果的CoreLocation框架,它可以给你你所在位置的坐标。我不能链接到它,因为我没有获得iPhone的文档。

下面 http://www.mathforum.com/library/drmath/查看/ 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));
    }

也许你就能获得使用3个或多个接入点的粗略距离。现在有一种技术来获得,使用3- GSM移动基站的移动订户的距离。

使用收到功率可以使用RF传播模型从发射器到一个reciever制定出的距离。然而,这听起来像你想要的位置,而不仅仅是距离。

自由空间路径损耗模型:

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

什么是你想在这里实现?

如果你想要绘制使用iPhone在地图上你的位置,那么,这一特征已经具有GPS接收器,并会做iPhone的一部分是“开箱即用”。

如果您尝试使用无线网络来找到你的笔记本电脑的位置和发送位置到iPhone,那么你有一个相当困难的问题,以解决可能没有大量的工作是可行的。

有设施,使您能够从三角GSM桅杆您的位置,但这些都是在固定的位置与知道LAT /多头。 WiFi接入点没有从那些使三角地理位置的数据库将是非常困难/是不可能的。

您可以使用第三方服务,如来跟踪你的位置使用GSM但是这些都是非常不准确,除非你是在一个大的城市,需要你有一个GSM调制解调器不管它是你正在跟踪。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top