我有许多kml文件,每个文件只有一个路径。我怎样才能从kml中获得坐标,并将它们变成一个数组,其中每个坐标都嵌套在它们自己的数组中?从kml获得坐标
实例阵列: [[LAT1,long1],[LAT2,long2],[lat3,long3]]
我宁愿JavaScript中,但我可以做的PHP为好。
例如KML:http://98.214.131.200/Routes/test.kml
我有许多kml文件,每个文件只有一个路径。我怎样才能从kml中获得坐标,并将它们变成一个数组,其中每个坐标都嵌套在它们自己的数组中?从kml获得坐标
实例阵列: [[LAT1,long1],[LAT2,long2],[lat3,long3]]
我宁愿JavaScript中,但我可以做的PHP为好。
例如KML:http://98.214.131.200/Routes/test.kml
geoxml3可以作为一个独立的解析器(虽然它是在该模式下没有特别好的测试)。如果你想要多段线,你可能需要多分支而不是后备箱。
坐标的阵列是不太你要求的格式,它看起来像这样:
placemarks[].LineString[].coordinates[].{lat:Float, lng:Float, alt:Float}
如果每个KML文件中有一个“路径”,可能是阵列将是:
placemarks[0].LineString[0].coordinates
并且也可以作为google.maps.Polyline对象使用。
以下是您的示例kml displayed by geoxml3,如果您使用调试器在页面周围漫游,则可以看到坐标数组。
使用IE浏览器的使用SimpleXML大多数PHP分派是STD启用默认情况下,这些天:
$url = "http://98.214.131.200/Routes/test.kml";
$contents = file_get_contents($url);
$xml = new SimpleXMLElement($contents);
$value = (string)$xml->Document->Placemark->LineString->coordinates;
$values = explode(" ", trim($value));
$coords = array();
foreach($values as $value) {
$args = explode(",", $value);
$coords[] = array($args[0], $args[1]);
}
echo '<pre>';
print_r($coords);
我会Google ** javascript解析kml **,看看你得到了什么。 – Blender 2012-07-12 00:18:46