1.背景
項(xiàng)目中需要在瀏覽器端直接上傳SHP后服務(wù)端進(jìn)行數(shù)據(jù)的自動(dòng)入PG庫(kù)以及發(fā)布至geoserver。本方法是以geotools為開(kāi)發(fā)工具實(shí)現(xiàn)入庫(kù),以geoserver manager來(lái)實(shí)現(xiàn)服務(wù)的自動(dòng)發(fā)布。這里著重描述geotools編寫SHP入庫(kù)的方法。
2.Geotools介紹
2.1總體介紹
Geotools是Java語(yǔ)言編寫的開(kāi)源GIS工具包,其功能涵蓋了地理信息數(shù)據(jù)讀寫、處理、坐標(biāo)轉(zhuǎn)換、查詢分析、格式化輸出等多個(gè)方面。該項(xiàng)目已有十多年歷史,生命力旺盛,代碼非常豐富,包含多個(gè)開(kāi)源GIS項(xiàng)目,并且基于標(biāo)準(zhǔn)的GIS接口。Geotools主要提供各種GIS算法,各種數(shù)據(jù)格式的讀寫和顯示。在顯示方面要差一些,只是用Swing實(shí)現(xiàn)了地圖的簡(jiǎn)單查看和操作。但是用戶可以根據(jù)Geotools提供的算法自己實(shí)現(xiàn)地圖的可視化。OpenJump和udig就是基于Geotools的。
Geotools用到的兩個(gè)較重要的開(kāi)源GIS工具包是JTS和GeoAPI。前者主要是實(shí)現(xiàn)各種GIS拓?fù)渌惴?,也是基于GeoAPI的。但是由于兩個(gè)工具包的GeoAPI分別采用不同的Java代碼實(shí)現(xiàn),所以在使用時(shí)需要相互轉(zhuǎn)化。Geotools又根據(jù)兩者定義了部分自己的GeoAPI,所以代碼顯得臃腫,有時(shí)容易混淆。由于GeoAPI進(jìn)展緩慢,Geotools自己對(duì)其進(jìn)行了擴(kuò)充。另外,Geotools現(xiàn)在還只是基于2D圖形的,缺乏對(duì)3D空間數(shù)據(jù)算法和顯示的支持。
Geotools The Open Source Java GIS Toolkit的相關(guān)學(xué)習(xí)網(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倉(cāng)庫(kù)
http://download.osgeo.org/webdav/geotool