【问题标题】:How to convert my xml file to kml file如何将我的 xml 文件转换为 kml 文件
【发布时间】:2023-03-11 05:21:01
【问题描述】:

在我的 iOS 应用程序中,我有一个包含数千个位置数据的 xml 文件。我需要将其转换为 kml 格式以在我的地图视图上显示热图。我怎样才能转换它?请给我这个转换的指导方针...

<?xml version="1.0"?>
    <row id="1">
        <id>101</id>
            <name>Sharon Appartments</name>
            <longitude>115.23412</longitude>
            <latitude>34.734121</latitude>
            <city>Dallas</city>
            <state>California</state>
            <country>USA</country>
     </row>
     <row id="2">
     .
     .
     .
     .
     <row id="20000">
     .
     .
     </row>
</xml>

【问题讨论】:

  • 有什么转换器可以转换吗?

标签: ios mkmapview kml heatmap


【解决方案1】:

由于您要求提供指南,因此示例 kml 文档如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark>
  <name>New York City</name>
  <description>New York City</description>
  <Point>
    <coordinates>-74.006393,40.714172,0</coordinates>
  </Point>
</Placemark>
</Document>
</kml>

看来你可以保持&lt;name&gt;字段不变,你可以将xml字段&lt;city,&lt;state&gt;,&lt;country&gt;中的项目组合到klm字段&lt;address&gt;city,state,country&lt;/address&gt;或将其用作kml&lt;description&gt;标签(出现的用户提供的内容在描述气球中),因为如果提供了点而不是使用地址,kml 将使用 long 和 lat 来确定点。将xml中的&lt;longitute&gt;,&lt;latitudite&gt;转换成kml需要的&lt;point&gt;&lt;cordinates&gt;longitute,latatude&lt;/cordinates&gt;&lt;/point&gt;

所以你需要将你的 klm 文件转换成这样的:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark>
  <name>Sharon Appartments</name>
  <description>Dallas, California, USA</description>
  <Point>
    <coordinates>115.23412,34.734121</coordinates>
  </Point>
</Placemark>
<Placement>
Put item 2 details here
</Placement>
.
.
.
<Placement>
Put item 20000 details here
</Placement>
</Document>
</kml>

我从https://developers.google.com/kml/documentation/kmlreference 得到这个,

现在对于热图部分,如果您可以将文件转换为经纬度列表,则可以将其放入此网页上的 python 程序中:http://jjguy.com/heatmap/,它将为基于谷歌地图的 kml 叠加在该数据上,您需要将该叠加层与您的城市数据的 kml 文件相结合,以获得完整的地图。

【讨论】:

  • 我是否需要手动转换整个数据,因为我有数千条记录?我试图寻找转换器,但我没有找到任何...
  • 以编程方式,您可以使用一个小的 python 脚本读取一些标签,然后将其保存为新格式,或者您可以编写一个 en.wikipedia.org/wiki/XML_transformation_language 文件来转换它。如果你想手动完成,这并不难,使用像 Geany 这样的文本编辑器并使用查找替换并选中“使用转义序列”。查找&lt;longitude&gt; 并替换为&lt;point&gt;&lt;coordinates&gt;,查找&lt;/longitude&gt;\r\n&lt;latitude&gt; 并替换为逗号,其中\r\n 是您的操作系统的回车符(可能是\r、\n 等,具体取决于文件使用的内容"等。
  • 问题来自 字段,您需要在 geany 中使用正则表达式。当然这只是一个准则,我个人只是修改该网站 jiguy.com/heatmap 中的 heatmap.py 文件以读取我的 xml 文件并吐出正确的 kml。
  • 我认为正则表达式会是相似的 并且替换将是“,但我使用的正则表达式不足以记住它。我希望这能给你一些东西思考并帮助引导您找到您所要求的答案。
  • 我使用正则表达式将该行 ID 转换为
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-30
  • 1970-01-01
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多