建议什么可以在Ruby中解析GPX文件?
我试过gpx,但它不适用于 Ruby 企业版(https://github.com/dougfales/gpx/issues/1)。
我不想写解析器。
我一直在寻找同样的东西,但最后 GPX 文件只是另一个 XML 文件,因此您可以使用像Nokogiri这样的 XML 解析库来解析它。以下是我如何从 GPX 日志中提取所有纬度和经度:
#!/usr/bin/env ruby
require 'rubygems'
require 'nokogiri'
doc = Nokogiri::XML(open(my-log.gpx))
trackpoints = doc.xpath('//xmlns:trkpt')
points = Array.new
trackpoints.each do |trkpt|
points << [trkpt.xpath('@lat').to_s.to_f, trkpt.xpath('@lon').to_s.to_f]
end
可能有更好的方法可以做到这一点,但这对我有用。
我对使用 GPX 和 Nokogiri 不是很熟悉,而且我的 GPX 文件只有很多<wpt>
而不是<trkpt>
,这对我有用:
require 'rubygems'
require 'nokogiri'
doc = Nokogiri::XML(open("my_route.gpx"))
trackpoints = doc.xpath('//wpt')
points = Array.new
trackpoints.each do |trkpt|
points << [trkpt.xpath('@lat').to_s.to_f, trkpt.xpath('@lon').to_s.to_f]
end
p points
或这个:
require 'rubygems'
require 'nokogiri'
doc = Nokogiri::XML(open("my_route.gpx"))
waypoints = doc.xpath('//wpt')
points = waypoints.map{|wpt| [wpt.xpath('@lat').to_s.to_f, wpt.xpath('@lon').to_s.to_f]}
p points