2012-01-27 200 views

回答

2

一旦我使用了小型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包含從shape文件中的所有數據。當然,你需要一些時間來弄清楚shapefile是什麼以及它可以容納哪些數據(假設你不熟悉它)。從wikipedia開始。其實有一些數組和一些標籤。

然後使用一些PHP擅長LIB(只是尋求這樣),你就大功告成了:)

+0

非常感謝兄弟!讓我試試這個。 – 2012-01-27 10:36:15

+0

它給出了一個錯誤: 調用成員函數assign()在非對象 – 2012-01-27 11:21:07

+0

當然它給出了錯誤,因爲你沒有對象$視圖:)這只是一個來自現有代碼的工件。這意味着將一個變量放入視圖以在模板中可用。代碼只是一個參考。用'$ view-> assign'刪除行並在最後執行print_r($記錄)。 – dmitry 2012-01-27 11:56:27

相關問題