如何在PHP中将KML转换为GPX

时间:2013-10-23 09:22:06

标签: php kml gpx

我需要做的是开发一个允许用户在硬盘驱动器上指定KML文件的网页,然后我在后端的代码(在PHP中)将生成该KML的GPX文件。我似乎无法找到如何为它编写代码的指针,应该是非常简单的解析技术我猜测。

我需要实现这样的工具:http://www.gpsvisualizer.com/convert_input

但他们没有为它提供API。关于我如何做到这一点的任何指示?

2 个答案:

答案 0 :(得分:0)

首先,您需要知道此转换可能仅适用于一小部分KML文件。因为KML是比GPX更广泛的文件(XML)格式。维基百科say KML旨在“表达地理注释和可视化”。这些可能是无法用GPX表示的形状。 GPX仅用于GPS数据 - 通过GPS(轨道,航路点)进行数据记录,或者在计算机上创建以便以后用于GPS(路线,航点)。

那就是说,gpsvisualiser mostly uses gpsbabel。这不是一个PHP解决方案,但如果你可以安装从PHP运行外部命令(gpsbabel),这将是实现它的最简单方法。

答案 1 :(得分:0)

你看过这个php脚本吗? Convert from Google KML to GPS Exchange Format GPX with PHP -- Blog of Travis Hydzik

运作良好。

使用脚本处理时只遇到一个错误,即: 未定义的偏移:第147行的kml-to-gpx.php为1 这是由源kml文件中任何一组中第一个坐标之前和最后一个坐标之后的空格引起的。尽管没有数值,但是这个空白区域被添加为纬度和经度数字。

您可以通过添加

来下载文件
$u_filename = $u_parts['filename'] . ".gpx";
header("Content-Disposition: attachment;filename='$u_filename';");

header("Content-Type: text/xml");