1.背景

項目中需要在瀏覽器端直接上傳SHP后服務(wù)端進行數(shù)據(jù)的自動入PG庫以及發(fā)布至geoserver。本方法是以geotools為開發(fā)工具實現(xiàn)入庫,以geoserver manager來實現(xiàn)服務(wù)的自動發(fā)布。這里著重描述geotools編寫SHP入庫的方法。

2.Geotools介紹

2.1總體介紹

Geotools是Java語言編寫的開源GIS工具包,其功能涵蓋了地理信息數(shù)據(jù)讀寫、處理、坐標轉(zhuǎn)換、查詢分析、格式化輸出等多個方面。該項目已有十多年歷史,生命力旺盛,代碼非常豐富,包含多個開源GIS項目,并且基于標準的GIS接口。Geotools主要提供各種GIS算法,各種數(shù)據(jù)格式的讀寫和顯示。在顯示方面要差一些,只是用Swing實現(xiàn)了地圖的簡單查看和操作。但是用戶可以根據(jù)Geotools提供的算法自己實現(xiàn)地圖的可視化。OpenJump和udig就是基于Geotools的。
    Geotools用到的兩個較重要的開源GIS工具包是JTS和GeoAPI。前者主要是實現(xiàn)各種GIS拓撲算法,也是基于GeoAPI的。但是由于兩個工具包的GeoAPI分別采用不同的Java代碼實現(xiàn),所以在使用時需要相互轉(zhuǎn)化。Geotools又根據(jù)兩者定義了部分自己的GeoAPI,所以代碼顯得臃腫,有時容易混淆。由于GeoAPI進展緩慢,Geotools自己對其進行了擴充。另外,Geotools現(xiàn)在還只是基于2D圖形的,缺乏對3D空間數(shù)據(jù)算法和顯示的支持。

Geotools The Open Source Java GIS Toolkit的相關(guān)學習網(wǎng)站如下:

http://geotools.org/   Geotools官方網(wǎng)站
http://docs.geotools.org/latest/javadocs/          Geotools API在線文檔
http://docs.codehaus.org/display/GEOTDOC/Home Geotools用戶指南
http://repo.opengeo.org                            Geotools的maven倉庫
http://download.osgeo.org/webdav/geotool