【问题标题】:get coordinates from kml从 kml 获取坐标
【发布时间】:2012-07-11 16:56:59
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我会谷歌 javascript parse kml 看看你得到了什么。

标签: php javascript xml google-maps-api-3 kml


【解决方案1】:

geoxml3 可以用作独立的解析器(尽管在该模式下没有经过特别好的测试)。如果你想要折线,你可能想要 polys 分支而不是树干。

坐标数组不是你要求的格式,看起来像这样:

placemarks[].LineString[].coordinates[].{lat:Float, lng:Float, alt:Float}

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

placemarks[0].LineString[0].coordinates

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

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

【讨论】:

    【解决方案2】:

    使用即在大多数 php 发行版中默认启用标准的 SimpleXMl:

     $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);
    

    【讨论】:

      【解决方案3】:
      <?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);
      
       ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多