当前位置: 首页 > 知识库问答 >
问题:

Ruby Nokogiri将KML转换为CSV

萧心远
2023-03-14

我试图从KML文件中提取两个不同的元素,并将它们转换为CSV。我从这里的伟大网站开始:http://ckdake.com/content/2012/highgroove-hack-night-kml-heatmaps.html这将生成一组坐标。我现在要做的就是在每行的开头添加name标记。我是一个ruby/nokogiri n00b,所以我可以把这段代码放在其中,让我得到a)所有名字的列表,后面跟着b)所有坐标的列表。不过,我还是希望他们在同一条线上。

require 'rubygems'
require 'nokogiri' # gem install nokogiri

@doc = Nokogiri::XML(File.open("WashingtonDC2013-01-04 12h09m01s.kml"))

@doc.css('name').each do |name|  
  puts name.content
end

@doc.css('coordinates').each do |coordinates|
  coordinates.text.split(' ').each do |coordinate|
    (lat,lon,elevation) = coordinate.split(',')
    puts "#{lat},#{lon}\n"
  end
end

共有1个答案

范稳
2023-03-14

这个怎么样:

@doc.css('Placemark').each do |placemark|
  name = placemark.css('name')
  coordinates = placemark.at_css('coordinates')

  if name && coordinates
    print name.text + ","
    coordinates.text.split(' ').each do |coordinate|
      (lon,lat,elevation) = coordinate.split(',')
      print "#{lat},#{lon}"
    end
    puts "\n"
  end
end

我在这里假设

如果这不起作用,您需要发布一些KML文件本身,以便我可以对其进行测试。我只是根据这个示例KML文件进行猜测。

 类似资料:
  • 我用谷歌地球创建了一个kml文件,它使用外部图像创建了一个覆盖层。它工作得很好,我想找到一种相当方便的转换kml的方法,这样谷歌地图就可以以类似的方式读取和显示它。 谷歌地图不能处理谷歌地球坐标,所以我试图自己转换它们。例如,我替换了地球坐标: 使用等效地图坐标: 不幸的是,两者并不完全“对等”。“地图覆盖”稍微关闭,旋转不正确。 以下是两张照片: 地球实例 地图示例 我明白为什么它不起作用,但我

  • 我有一个shapefile,我正在尝试将其转换为kml文件,以便在Qlik意义上使用它。我想将kml区域和kml名称(标记为扇区ID)存储在kml中。下面是我使用的代码 我试过各种各样的软件包,但似乎都不管用。到目前为止,我只能得到没有正确标签(扇区ID)的kml区域。我尝试过的方法之一是plotKML包中的kml函数,但当我尝试在Qlik中读取它们时,它已损坏。 如果能对我上面的代码提供任何帮助

  •        在LocaSpaceViewer中可以把几乎各种格式的GPS文件转换为通用的kml格式。        不同的GPS设备,不同厂商生成的GPS数据格式不尽相同,为数据的通用带来了很大麻烦,这里可以把常用的GPS数据格式转换为更为通用的kml格式。支持的格式包括*.gpx、*.gdb、*.trl、*.csv、*.loc、*.wpt、*.plt、*.pcx、*.log等等。      

  •        在“数据处理”菜单栏中,点击“Excel转KML”,弹出对话框,点击打开XLS,选择要转换的Excel文件(可以添加LSV文件夹下示例数据中的EXCEL2KML示例数据.xls进行测试),读取完成后,可以在上方的表格里看到Excel里的信息。在Excel表格内容的下面分了两块,左侧一块为经纬度和气泡内容的选择,右侧一块是对要生成的kml图层的风格的设置。        经纬度选择包括

  •        在LocaSpaceViewer中可以把几乎各种格式的GPS文件转换为通用的kml格式。        不同的GPS设备,不同厂商生成的GPS数据格式不尽相同,为数据的通用带来了很大麻烦,这里可以把常用的GPS数据格式转换为更为通用的kml格式。支持的格式包括*.gpx、*.gdb、*.trl、*.csv、*.loc、*.wpt、*.plt、*.pcx、*.log等等。      

  •        在“数据处理”菜单栏中,点击“Excel转KML”,弹出对话框,点击打开XLS,选择要转换的Excel文件(可以添加LSV文件夹下示例数据中的EXCEL2KML示例数据.xls进行测试),读取完成后,可以在上方的表格里看到Excel里的信息。在Excel表格内容的下面分了两块,左侧一块为经纬度和气泡内容的选择,右侧一块是对要生成的kml图层的风格的设置。        经纬度选择包括