【问题标题】:Convert .shp files to an excel spreadsheet programmatically以编程方式将 .shp 文件转换为 Excel 电子表格
【发布时间】:2012-01-27 06:51:40
【问题描述】:

我有一个 .shp 格式的文件,我需要它以编程方式将其转换为 Excel 电子表格。我想使用 PHP 或 JavaScript 来实现。

【问题讨论】:

    标签: php javascript gis shapefile


    【解决方案1】:

    一旦我使用了小型 PHP 库 ShapeFile,您就可以在 phpclasses.org 中获得它。虽然它的设计有点不太好,但它确实有效。

    这是我自己的代码中的一个小例子:

    require_once 'lib/ShapeFile.inc.php';
    $shp = new ShapeFile($filename, array('noparts' => false));
    if ($shp->getError() !== '')
      print_r($shp->getError());
    else
    {
      $records = array();
      while ($record = $shp->getNext())
      {
        $dbf_data = $record->getDbfData();
        $shp_data = $record->getShpData();
    
        //Dump the information
        $obj = array(
          'type' => $shp->getShpTypeName($record->getShpType())
        );
    
        $obj['shape'] = $shp_data;
        $obj['meta'] = $dbf_data;
    
        $records[] = $obj;
      }
    }
    
    print_r($records);
    

    所以,在那之后$records 包含来自 shapefile 的所有数据。当然,您将需要一些时间来弄清楚 shapefile 是什么以及它可以保存哪些数据(假设您不熟悉它)。从wikipedia开始。实际上有一堆带有一些标签的数组。

    然后使用一些 php excel 库(只要在里面寻找)就完成了:)

    【讨论】:

    • 非常感谢兄弟!让我试试这个。
    • 它给出一个错误:在非对象上调用成员函数 assign()
    • 当然会报错,因为你没有对象 $view :) 它只是现有代码的产物。这意味着将变量放在视图中以在模板中可用。代码只是一个参考。删除带有$view->assign 的行并在最后执行 print_r($records)。
    • 请注意:运行 WAMP 2.2.22 和 PHP 5.4.3 和 ShapeFile.inc.php 时遇到了一些问题。自 PHP 5.3 起,php_dbase 不再包括在内。我在这里有一个工作扩展...hrazdil.info/blog/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 2011-01-30
    相关资源
    最近更新 更多