首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Xcode中使用GPX模拟位置变化时,有没有办法控制速度?

在Xcode中使用GPX模拟位置变化时,有没有办法控制速度?
EN

Stack Overflow用户
提问于 2012-02-25 07:26:28
回答 3查看 30K关注 0票数 24

我在Xcode4.2中使用以下GPX文件来模拟位置更改。它工作得很好,但我无法控制位置改变的速度。stamp似乎不起作用。有人有解决这个问题的办法吗?

代码语言:javascript
运行
复制
<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode"> 
    <wpt lat="37.331705" lon="-122.030237"></wpt>
    <wpt lat="37.331705" lon="-122.030337"></wpt>
    <wpt lat="37.331705" lon="-122.030437"></wpt>
    <wpt lat="37.331705" lon="-122.030537"></wpt>
</gpx>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-25 07:35:30

我不认为(知道)这可以直接在GPX中实现,但您可以使用Instruments/Automation测试位置更改。

您将使用如下脚本:

代码语言:javascript
运行
复制
var target = UIATarget.localTarget();
target.setLocation(<location);
target.delay(5);
target.setLocation(...);

诸若此类。我从WWDC11 video中获取了这个示例(测试您的位置感知应用程序)

我知道这实际上不能让你定义速度,但我希望延迟能以某种方式解释这一点。也许这会对你有帮助。

票数 13
EN

Stack Overflow用户

发布于 2012-07-29 20:32:26

我不认为你可以用GPX文件做到这一点。但是在仪器中使用自动化工具是很容易的。以下是我自己用于应用程序测试和屏幕截图收集的脚本之一:

代码语言:javascript
运行
复制
var target = UIATarget.localTarget();

// speed is in meters/sec
var points = [
          {location:{latitude:48.8899,longitude:14.2}, options:{speed:8, altitude:200, horizontalAccuracy:10, verticalAccuracy:15}},
          {location:{latitude:48.8899,longitude:14.9}, options:{speed:11, altitude:200, horizontalAccuracy:10, verticalAccuracy:15}},
          {location:{latitude:48.8899,longitude:14.6}, options:{speed:12, altitude:200, horizontalAccuracy:10, verticalAccuracy:15}},
          {location:{latitude:48.8899,longitude:14.7}, options:{speed:13, altitude:200, horizontalAccuracy:10, verticalAccuracy:15}},
          {location:{latitude:49.2,longitude:14.10}, options:{speed:15, altitude:200, horizontalAccuracy:10, verticalAccuracy:15}},
          {location:{latitude:49.4,longitude:14.8}, options:{speed:15, altitude:200, horizontalAccuracy:10, verticalAccuracy:15}},
          {location:{latitude:48.8899,longitude:14.9}, options:{speed:9, altitude:200, horizontalAccuracy:10, verticalAccuracy:15}},
          {location:{latitude:48.8899,longitude:15.1}, options:{speed:8, altitude:200, horizontalAccuracy:10, verticalAccuracy:15}},
          {location:{latitude:48.8899,longitude:16.1}, options:{speed:3, altitude:200, horizontalAccuracy:10, verticalAccuracy:15}},
          ];

for (var i = 0; i < points.length; i++)
{
target.setLocationWithOptions(points[i].location,points[i].options);
target.captureScreenWithName(i+"_.png");
target.delay(1.0);
}

我创建了step by step walkthrough,用于使用位置模拟和自动化和泄漏来抓取屏幕截图和查找泄漏

票数 15
EN

Stack Overflow用户

发布于 2012-03-30 17:56:11

还有一个方法可以让你传入速度和其他一些属性:

代码语言:javascript
运行
复制
target.setLocationWithOptions({latitude: 46.546928, longitude: 11.867127}, {altitude: 200.0, speed: 5});

(有关更多详细信息,请查看此AppleDoc )

您仍然可以在控制台应用程序(/Applications/Utilities/Console.app)中看到您的NSLog。只需添加一个过滤器即可获得正确的结果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9439495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档