java geotools是什么,讓我們一起了解一下?
Geotools是一個java類庫,提供了很多的標(biāo)準(zhǔn)類和方法來處理空間數(shù)據(jù),同時這個類庫是構(gòu)建在OGC標(biāo)準(zhǔn)之上的,是OGC思想的一種實現(xiàn)。使用Java語言和面向?qū)ο蠓椒〞r,按照功能劃分模塊,結(jié)構(gòu)清晰。
它的核心特點是什么?1、為空間概念和數(shù)據(jù)結(jié)構(gòu)定義了很多的接口。2、通過JTS類庫集成了對幾何拓?fù)涞闹С帧?、通過使用OGC過濾編碼規(guī)范可以對屬性和空間要素過濾。4、對于數(shù)據(jù)訪問API,支持要素訪問、事務(wù)支持和線程間鎖定。5、可以訪問多種格式的數(shù)據(jù)和空間數(shù)據(jù)庫。
6、支持多種坐標(biāo)參考系統(tǒng)和及其轉(zhuǎn)換。7、可以和擴展的地圖投影一同工作。8、可以按照空間和非空間屬性來過濾和分析數(shù)據(jù)。9、一種無狀態(tài)的,耗低內(nèi)存的渲染機制,尤其在服務(wù)端環(huán)境下。10、通過復(fù)雜的樣式(SLD)來組成和展現(xiàn)地圖。
實戰(zhàn)操作:
java如何用geotools類庫讀取shapefile?
shapefile是esri公司最先搞出來的,那么arcgis應(yīng)該是有相關(guān)的類庫的吧?好像找不到?我問過搞移動端的同事,arcgis for android確有處理shapefile的類庫,處理起來易如反掌。
但是,在WEB系統(tǒng),服務(wù)器端從shapefile讀出數(shù)據(jù),最終是要在前端瀏覽器中展示,像我們目前在建的項目,就是要用arcgis for js來展示這些數(shù)據(jù),而安卓系統(tǒng)類似CS項目,有很大的不同。最大的不同,WEB系統(tǒng)中,數(shù)據(jù)要以JSON的形式給前端,這樣才好處理。
import?com.alibaba.fastjson.JSON; import?com.alibaba.fastjson.JSONArray; import?com.alibaba.fastjson.JSONObject; import?org.geotools.data.FileDataStore; import?org.geotools.data.FileDataStoreFinder; import?org.geotools.data.shapefile.ShapefileDataStore; import?org.geotools.data.shapefile.dbf.DbaseFileHeader; import?org.geotools.data.shapefile.dbf.DbaseFileReader; import?org.geotools.data.shapefile.files.ShpFiles; import?org.geotools.data.simple.SimpleFeatureCollection; import?org.geotools.data.simple.SimpleFeatureIterator; import?org.geotools.data.simple.SimpleFeatureSource; import?org.geotools.geojson.feature.FeatureJSON; import?org.geotools.geometry.jts.ReferencedEnvelope; import?org.locationtech.jts.geom.Coordinate; import?org.locationtech.jts.geom.Geometry; import?org.opengis.feature.Property; import?org.opengis.feature.simple.SimpleFeature; import?org.opengis.feature.simple.SimpleFeatureType; import?org.opengis.referencing.FactoryException; import?org.opengis.referencing.crs.CoordinateReferenceSystem; import?org.opengis.referencing.operation.TransformException; import?java.io.*; import?java.nio.charset.Charset; import?java.util.*; /* ????shapefile操作類 ?*/ public?class?ShapefileHelper?{ ????public?static?Object?read(String?path)?throws?IOException?{ ????/* 參數(shù)path就是shp文件的完整路徑,如:E:\\蟠桃會資源清查\\調(diào)查圖斑.shp?? 系統(tǒng)會自動檢查同一個目錄下有沒有其他相關(guān)文件,有的話會一并讀出, 相關(guān)文件的路徑無須給出 .shp?存儲地理形狀和位置信息 .dbf?存儲屬性信息 .shx?索引文件 .prj?坐標(biāo)系 .cpg?字符編碼,如UTF-8 讀取出來的結(jié)果類型為?List
以上就是小編今天的分享了,希望可以幫助到大家。