首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从kml获取坐标

从kml获取坐标
EN

Stack Overflow用户
提问于 2012-07-12 08:15:38
回答 3查看 4.4K关注 0票数 0

我有一些kml文件,每个文件中只有一个路径。如何从kml中获取坐标,并将它们转换为数组,其中每组坐标都嵌套在它们自己的数组中?

数组示例:[lat1,long1,lat2,long2,lat3,long3]

我更喜欢javascript,但我也可以做php。

示例kml:http://98.214.131.200/Routes/test.kml

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-12 10:19:14

geoxml3可以用作独立的解析器(尽管它在该模式下没有经过特别好的测试)。如果需要多段线,则可能需要多边形分支而不是主干。

坐标数组与您请求的格式不完全相同,如下所示:

代码语言:javascript
复制
placemarks[].LineString[].coordinates[].{lat:Float, lng:Float, alt:Float}

如果您的每个kml文件都有一个“路径”,那么数组可能是:

代码语言:javascript
复制
placemarks[0].LineString[0].coordinates

也可以作为google.maps.Polyline对象使用。

这是您的示例kml displayed by geoxml3,如果您使用调试器浏览页面,您可以看到坐标数组。

票数 1
EN

Stack Overflow用户

发布于 2012-07-12 08:57:49

例如,使用SimpleXMl,它在目前的大多数php发行版中都是默认启用的:

代码语言:javascript
复制
 $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);
票数 0
EN

Stack Overflow用户

发布于 2018-04-26 13:36:43

代码语言:javascript
复制
<?php
$xmlFile = '73---5.kml';
$xmlString = file_get_contents($xmlFile);
$doc = new DomDocument();
$doc->loadXML($xmlString);
$xpath = new DomXpath($doc);
$ward_names=array();
$searchNodes = $doc->getElementsByTagName( "coordinates" );   
foreach( $searchNodes as $searchNode ) 
{ 

   $ward_names [] =  $searchNode->nodeValue; 

}


 $string_version = implode(' ', $ward_names) ;
 $destination_array = explode(' ', $string_version);


echo "<pre>";
 print_r($destination_array);

 ?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11443414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档