使用Ruby生成KML文件

时间:2014-05-21 23:01:04

标签: ruby kml geo

我现在正在使用ruby_kml gem来尝试从我的模型中的某些数据生成KML。 我也试过georuby

他们两个,当他们生成XML时,它似乎都会像这样逃脱:

"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<kml xmlns=\"http://earth.google.com/kml/2.1\">\n  <Folder>\n    <name>San Francisco</name>\n    <LineStyle>\n      <color>#0D7215</color>\n    </LineStyle>\n    <Placemark>\n      <name>21 Google Bus</name>\n      <description>\n        <![CDATA[Click to add description.]]>\n      </description>\n      <LineString>\n        <coordinates>37.784282779035216,-122.42228507995605 37.784144999999995,-122.42225699999999,37.784084,-122.42274499999999,37.785472,-122.423023,37.785391,-122.423564,37.785364,-122.423839,37.785418,-122.424714,37.785410999999996,-122.42497999999999,37.785391,-122.42522,37.784839,-122.42956,37.784631,-122.431297,37.782576,-122.43086799999999,37.776969,-122.42975399999999,37.776759999999996,-122.431384,37.776368,-122.431305 37.776368,-122.431305,37.777699999999996,-122.431575,37.778746999999996,-122.42335399999999,37.773609,-122.42231199999999,37.773013999999996,-122.42222799999999,37.772974999999995,-122.42222799999999,37.772915,-122.42226799999999,37.772774,-122.422446,37.772636999999996,-122.422585,37.772562,-122.42263399999999,37.772521999999995,-122.422643,37.771588,-122.42253799999999,37.771631,-122.421759</coordinates>\n      </LineString>\n    </Placemark>\n    <LineStyle>\n      <color>#0071CA</color>\n    </LineStyle>\n    <Placemark>\n      <name>45 Inverter</name>\n      <description>\n        <![CDATA[Click to add description.]]>\n      </description>\n      <LineString>\n        <coordinates>37.792490234462946,-122.40863800048828 37.792516,-122.408429,37.793068,-122.408541,37.792957,-122.409357,37.792051,-122.409189,37.788289999999996,-122.40841499999999,37.785495,-122.407866,37.785713,-122.406229,37.785713,-122.40591599999999,37.785699,-122.40576999999999,37.785658,-122.40568999999999,37.783249999999995,-122.40270699999999,37.778850999999996,-122.40827499999999,37.779104,-122.408577</coordinates>\n      </LineString>\n    </Placemark>\n    <LineStyle>\n      <color>#AD0101</color>\n    </LineStyle>\n    <Placemark>\n      <name>82 X Wing</name>\n      <description>\n        <![CDATA[Click to add description.]]>\n      </description>\n      <LineString>\n        <coordinates></coordinates>\n      </LineString>\n    </Placemark>\n    <LineStyle>\n      <color>#AD0101</color>\n    </LineStyle>\n    <Placemark>\n      <name>93 X Wing</name>\n      <description>\n        <![CDATA[Click to add description.]]>\n      </description>\n      <LineString>\n        <coordinates></coordinates>\n      </LineString>\n    </Placemark>\n  </Folder>\n</kml>\n"

我不确定为什么它应该被转义,因为它肯定不是有效的XML。

georuby也是如此。

有谁知道为什么它会逃脱,以及如何逃避它?

以下是我使用的代码:

map = self;
kml = KMLFile.new
folder = KML::Folder.new(:name => map[:name])
map.lines.each do |line|
  folder.features << KML::LineStyle.new(
    color: line.color,
  )
  folder.features << KML::Placemark.new(
    :name => line.name,
    :geometry => KML::LineString.new(:coordinates => line.coordinates),
    :description => line.description
  )
end
kml.objects << folder
kml.render

感谢!!!

0 个答案:

没有答案