仅使用 iPhone 模拟器更好地测试 GPS 代码的巧妙方法?

发布于 2024-08-28 11:09:18 字数 207 浏览 9 评论 0原文

我一直在使用 MapKit 和 Core Location 来研究 iPhone SDK。

您可以使用哪些技巧来更好地测试事物......同时仍在模拟器上(早在我必须在 iPhone 上尝试之前)。

有没有办法使用 NSTimer 并定期获取位置、航向、速度等的“假装”值?

模拟器只提供 1 个位置...并且没有移动...确实限制了它的“测试”用处。

I've been playing around with the iPhone SDK, using MapKit and Core Location.

What are some of the tricks you can use to better test things... while still on the simulator (long before I have to try it out on my iPhone).

Is there a way to use NSTimer and regularly get 'pretend' values for location, heading, speed, etc?

The simulator only giving 1 location... and no movement... really limits its 'testing' usefulness.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

抠脚大汉 2024-09-04 11:09:18

这是接收 GPS 数据的正常方式。

[GPS模块]----(CLLocationManagerDelegate)---> [YourLocationManager 类]

locationManager:didUpdateToLocation:fromLocation:

此方法将接收数据。


您还可以从 Test 类调用 YourLocationManager 类上的相同方法。

【测试类】--------调用------> [YourLocationManager 类]

1..像这样创建 CLLocation 对象.....在测试类上

CLLocationCoordinate2D location;
location.latitude = 37.0;
location.longitude = 127.0;

CLLocation *sampleLocation = [[CLLocation alloc] initWithCoordinate: location
        altitude:100
        horizontalAccuracy:100
        verticalAccuracy:100 
        timestamp:[NSDate date]];

您只能设置
纬度、经度、海拔、水平精度、垂直精度、时间戳。

你无法设置...航向、速度。

2.. 从 Test 类中调用 YourLocationmanager 类上的 locationManager:didUpdateToLocation:fromLocation: 方法。

[yourLocationManager locationManager: nil or something
                     didUpdateToLocation: sampleLocation
                     fromLocation: sampleLocation or nil or something];

您可以使用 NSTimer 发送更多数据!

It is normal way to receive the GPS data.

[GPS module] ----(CLLocationManagerDelegate)---> [YourLocationManager class]

locationManager:didUpdateToLocation:fromLocation:

This method will receive the data.


You can also call same method on YourLocationManager class from Test class.

[Test class] -------- call ------> [YourLocationManager class]

1.. make CLLocation object like this..... on Test class

CLLocationCoordinate2D location;
location.latitude = 37.0;
location.longitude = 127.0;

CLLocation *sampleLocation = [[CLLocation alloc] initWithCoordinate: location
        altitude:100
        horizontalAccuracy:100
        verticalAccuracy:100 
        timestamp:[NSDate date]];

you can set only
latitude, longitude, altitude, hotizontal accuracy, vertical accuracy, timestamp.

you can't set... course, speed.

2.. call locationManager:didUpdateToLocation:fromLocation: method on YourLocationmanager class from Test class.

[yourLocationManager locationManager: nil or something
                     didUpdateToLocation: sampleLocation
                     fromLocation: sampleLocation or nil or something];

You can use NSTimer to send more data!!

假情假意假温柔 2024-09-04 11:09:18

您可能想查看我的 FTLocationSimulator

它读取 Google Earth 生成的 KML 文件以提供连续的位置更新。它还使用模拟位置更新来更新 MKMapView 中的蓝色 userLocation 点。

You might wanna check out my FTLocationSimulator.

It reads a KML file generated by Google Earth to provide continuous location updates. It also updates the blue userLocation dot in a MKMapView with the simulated location updates.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文