安卓模拟器能否通过GPX文件模拟海拔高度?

4

我正在尝试在DDMS透视图中模拟模拟器设备的运动。我使用包含高程元素的gpx文件,但是当我的代码运行时,它只检索纬度/经度,并说高程= 0。

我的问题是,安卓模拟器能否用于模拟海拔,速度等,还是仅用于纬度和经度数据?


您可以通过模拟器向其发送修复程序,包括高度作为可选值,使用geo fix <longitude> <latitude> [<altitude>],因此它可以处理高度。关于gpx文件,我不确定,还没有尝试过。 - blindstuff
好的,它可以在模拟器中使用高度数据,但似乎无法从gpx文件中读取...有人用gpx文件或kml成功地模拟轨迹数据的海拔高度吗? - Dave
如果您找不到更好的解决方案,您可以自己阅读文件并提交一系列修复,包括高度。回答您的问题,您可以找到当前正在读取gpx文件的代码,并查看它是否具有任何高度功能。 - Chris Stratton
我也遇到了类似的问题;在2.2模拟器中,带有高度数据的GPX文件和输入高度的geo fix命令似乎都无法正常工作。 而且看起来这里的其他人也遇到了类似的问题:https://dev59.com/Ok_Sa4cB1Zd3GeqP-TRP - E.Z. Hart
@blindstuff 我不认为它有效,我发送了带有gpx文件的高程值,但它不会显示。我认为模拟器只显示纬度和经度值。 - Bawantha
1个回答

1

这并不是一个真正的答案,但它可能会给你一些有用的想法。

你使用了什么类型的提供者?有两个选项:LocationManager.GPS_PROVIDERLocationManager.NETWORK_PROVIDER。我猜测只有在使用LocationManager.GPS_PROVIDER时才能获得海拔高度信息。

此外,在你的LocationListener.onLocationChanged(Location location)中,你可以调用location.hasAltitude()。如果此位置修复包含海拔高度信息,则返回true,否则返回false。

更新:

看起来你遇到了一些模拟器问题。我记得我当时使用的是Eclipse 3.4.1 + ADT 0.9.5 + Android 2.0.1应用程序 + WinXP,唯一的方法是使用Telnet向模拟器提供GPS修复。所以我为此创建了一个辅助Ruby脚本:

require 'net/telnet'

scenario = [
  'sleep 1', 
  'geo fix -121.45356 46.51119 0', 
  'sleep 3', 
  'geo fix -80.45356 45.51119 0'
]

simulator_connection = nil

begin
  simulator_connection = 
    Net::Telnet::new(
      'Timeout' => 5, 
      'Port'    => 5554, 
      'Prompt'  => /(OK|\AKO.*\z)/
    )
rescue Errno::EBADF
  puts '> Error: running Android Emulator not found. Exiting ...'
  exit
end

puts '> got connection to Android Emulator'

begin
  scenario.each do |action|
    if action =~ /\Asleep\s\d+\z/
      puts "> #{action} secs ..."
      eval(action)
    else
      puts "> execute \"#{action}\""
      simulator_connection.cmd(action)
    end
  end
  puts '> job is done, exiting ...'
ensure
  simulator_connection.close
end

你看,我将0作为高度传递(在'geo fix ...'的最后一个参数),但是你可以尝试使用非零值。如果你不熟悉Ruby,那么你可能需要将脚本改编成你喜欢的脚本语言。如果这对你有用,请告诉我。


我正在使用GPS_PROVIDER。有趣的是,我将其加载到手机上并将其带到外面,它可以正常工作...它可以记录速度和海拔高度。因此,似乎确实与gpx文件有关。该文件确实包含海拔数据...但似乎无法获取它...我将查看是否触发了hasAltitude。 - Dave
@Dave:请查看我帖子中的更新部分。 - Vit Khudenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接