我有許多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