【问题标题】:Region Monitoring iOS App using an external GPS like GNS 1000使用 GNS 1000 等外部 GPS 的区域监控 iOS 应用程序
【发布时间】:2013-05-22 15:46:22
【问题描述】:

我正在开发一个区域监控应用程序,但想使用外部 GPS,以便将区域缩小到 15-20 m 并获得更高的准确度。我正在将 iPhone 连接到 Arduino,以便通过发出打开 LED 的信号来跨越该区域时进行通信。我打开蓝牙 GNS 1000 以获得更好的 GPS,但仍然不准确或根本没有区域回调。我已经对其进行了多次测试,并得到了准确性的差异。还测量了距离,有时没有得到任何反馈。我不是程序员,过去几周我刚刚学习了目标 C。目标是帮助视障人士导航。任何帮助将不胜感激。

我正在调用这些函数以获取反馈,但我无法确定出了什么问题:

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region {
    NSLog(@"Entered Region - %@", region.identifier);
    [self setArduino:YES];
    [self showRegionAlert:@"Entering Region" forRegion:region.identifier];

}

- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region {
    NSLog(@"Exited Region - %@", region.identifier);
    [self setArduino:NO];
    [self showRegionAlert:@"Exiting Region" forRegion:region.identifier];
}

- (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region {
    NSLog(@"Started monitoring %@ region", region.identifier);
}

不胜感激!

问候, M.

【问题讨论】:

    标签: objective-c gps geofencing clregion


    【解决方案1】:

    您正在使用区域监控方法及其回调。添加外部 GPS 不会帮助您提高准确性,因为这些方法依赖于内部操作系统位置更新。主要来自蜂窝和(主要)wifi接近度。虽然 GPS 会影响它,但设备可能会忽略来自外部 GPS 的所有内容,并且只有为利用它而编写的应用程序才会做任何事情。

    区域监控可以非常出色,除非它不是。如果您的设备没有蜂窝数据,您将受到打击。 (iPod Touch 和 iPad Wifi)如果你关闭了 Wifi,或者你在一个几乎没有接入点的农村地区,那么就区域监控而言,恐怕你已经死了。

    从事物的声音来看,如果你真的想走这条路,你必须编写自己的自定义方法来从外部设备中提取位置并手动监控更新。不完全理想。

    很抱歉带来坏消息。希望这将帮助您将时间花在遇到的问题上,并且您不会浪费时间试图让一些可能永远无法工作的东西发挥作用。祝你好运。

    【讨论】:

    • 为什么要从外部 GPS 中获取位置?它并不比内部更准确。他需要通过使用自己的区域监控软件来启用和使用内部Gps,仅依赖gps!
    • 这很好,但是 OP 说他们正在尝试使用基于外部 GPS 的内部区域监控方法。那是行不通的。如果他们想根据外部 GPS 制定自己的方法来监控区域,那很好,但这不是问题所在。
    • 问题是:“区域到 15-20 m 并获得更高的精度。”; iphone的GPS芯片有3m;故障不是芯片,是苹果的区域监控软件。所以用自己的区域监控软件外接GPS是没有意义的:唯一的意义是用自己的rgeion sw和内部芯片
    【解决方案2】:

    iphone >4 拥有最好的之一,如果不是最好的消费者 GPS 接收器的话。精度约为3-5m。绝对不需要为您的应用程序使用外部 GPS 设备! 只有当您需要 0.5m 精度并愿意为多相位 GPS 设备支付 5000 美元时,这种情况才会有所改善。

    您的主要问题在于软件。您的应用程序的 GPS 精度必须设置为“CLLAccuracyBestForNavigation”。 regionMonitoring 单独节省电池,但并不总是(或从不?)使用 GPS。

    更新
    如果您想要精确的区域监控,您必须自己编写区域检测算法,并且与 Apple 相比,仅使用 GPS。然后,仍然不需要外部 Gps。

    【讨论】:

    • 感谢您的回答。我已经设置了所需的精度,但仍然没有得到准确的区域监控: - (void)initializeLocationManager { // 检查以确保启用了位置服务 if(![CLLocationManager locationServicesEnabled]) { [self showAlertWithMessage:@"You need to启用位置服务以使用此应用程序。"];返回; } _locationManager = [[CLLocationManager alloc] init]; _locationManager.delegate = self; [_locationManager setDesiredAccuracy:kCLLocationAccuracyBestForNavigation]; }
    猜你喜欢
    • 2014-03-05
    • 2011-07-17
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 2013-11-20
    • 2018-05-21
    相关资源
    最近更新 更多