場景
GeoTools
GeoTools 是一個開源的 Java GIS 工具包,可利用它來開發(fā)符合標準的地理信息系統(tǒng)。
GeoTools 提供了 OGC (Open Geospatial Consortium) 規(guī)范的一個實現(xiàn)來作為他們的開發(fā)。
官網(wǎng)地址:
GeoTools The Open Source Java GIS Toolkit — GeoTools
參考其quick start教程,實現(xiàn)集成到maven項目中并運行示例代碼。
Quickstart — GeoTools 30-SNAPSHOT User Guide
點擊Maven Quickstart
Maven Quickstart — GeoTools 30-SNAPSHOT User Guide
注:
博客:
霸道流氓氣質(zhì)的博客_CSDN博客-C#,架構(gòu)之路,SpringBoot領(lǐng)域博主
實現(xiàn)
1、新建Maven項目并添加Geotools的依賴。
??????? <dependency>
??????????? <groupId>org.geotools</groupId>
??????????? <artifactId>gt-shapefile</artifactId>
??????????? <version>24-SNAPSHOT</version>
??????? </dependency>
??????? <dependency>
??????????? <groupId>org.geotools</groupId>
??????????? <artifactId>gt-swing</artifactId>
??????????? <version>24-SNAPSHOT</version>
??????? </dependency>
注意這里的版本是24,目前官網(wǎng)最新的示例是30,但是30是需要java11的環(huán)境,這里的本地環(huán)境是java8
所以選擇適配Java8的geotools的版本,這里選擇24版本。
另外需要注意的是geotools在中央倉庫中沒有坐標,所以需要添加repository
??? <repositories>
??????? <repository>
??????????? <id>osgeo</id>
??????????? <name>OSGeo Release Repository</name>
??????????? <url>https://repo.osgeo.org/repository/release/</url>
??????????? <snapshots><enabled>false</enabled></snapshots>
??????????? <releases><enabled>true</enabled></releases>
??????? </repository>
??????? <repository>
??????????? <id>osgeo-snapshot</id>
??????????? <name>OSGeo Snapshot Repository</name>
??????????? <url>https://repo.osgeo.org/repository/snapshot/</url>
??????????? <snapshots><enabled>true</enabled></snapshots>
??????????? <releases><enabled>false</enabled></releases>
??????? </repository>
??? </repositories>
添加位置
包括去尋找版本時可以去其倉庫地址去查找
Nexus Repository Manager
2、添加依賴并導(dǎo)入成功之后,參考官方示例代碼,新建類
https://docs.geotools.org/latest/userguide/_downloads/f3a52bd26dc6252b6c7f5e7f9d4a6469/Quickstart.java
新建類
import org.geotools.data.FileDataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.data.simple.SimpleFeatureSource;
import org.geotools.map.FeatureLayer;
import org.geotools.map.Layer;
import org.geotools.map.MapContent;
import org.geotools.styling.SLD;
import org.geotools.styling.Style;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.data.JFileDataStoreChooser;
import java.io.File;
import java.io.IOException;
public class HelloGeotools {
??? public static void main(String[] args) throws IOException {
??????? File file = JFileDataStoreChooser.showOpenFile("shp", null);
??????? if (file == null) {
??????????? return;
??????? }
??????? FileDataStore store = FileDataStoreFinder.getDataStore(file);
??????? SimpleFeatureSource featureSource = store.getFeatureSource();
??????? // Create a map content and add our shapefile to it
??????? MapContent map = new MapContent();
??????? map.setTitle("Quickstart");
??????? Style style = SLD.createSimpleStyle(featureSource.getSchema());
??????? Layer layer = new FeatureLayer(featureSource, style);
??????? map.addLayer(layer);
??????? // Now display the map
??????? JMapFrame.showMap(map);
??? }
}
運行main方法
選擇要預(yù)覽的shp文件后文章來源:http://www.zghlxwxcb.cn/news/detail-477417.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-477417.html
到了這里,關(guān)于Java+GeoTools(開源的Java GIS工具包)快速入門-實現(xiàn)讀取shp文件并顯示的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!