日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Geotools简介以及quickstsrt加载shp文件并显示

發(fā)布時間:2025/3/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Geotools简介以及quickstsrt加载shp文件并显示 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

場景

Geotools

Geotools是一個java類庫,它提供了很多的標(biāo)準(zhǔn)類和方法來處理空間數(shù)據(jù),同時這個類庫是構(gòu)建在OGC標(biāo)準(zhǔn)之上的,是OGC思想的一種實(shí)現(xiàn)。
而OGC是國際標(biāo)準(zhǔn),所以geotools將來必定會成為開源空間數(shù)據(jù)處理的主要工具,目前的大部分開源軟件,如udig,geoserver等,

對空間數(shù)據(jù)的處理都是由geotools來做支撐。而其他很多的web服務(wù),命令行工具和桌面程序都可以由geotools來實(shí)現(xiàn)。

geotools官方網(wǎng)站:

https://geotools.org/

其官網(wǎng)有快速開始的指南。

?

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
關(guān)注公眾號
霸道的程序猿
獲取編程相關(guān)電子書、教程推送與免費(fèi)下載。

實(shí)現(xiàn)

點(diǎn)擊Quickstart,然后選擇Intellij Quickstart

?

然后就可以按照其官方指南快速開始。

這里新建項(xiàng)目的方式,沒有使用官方文檔中的Maven的quick start。而是選擇新建項(xiàng)目時選擇SpingInitializr快速新建項(xiàng)目

?

然后添加最基本的web依賴

?

然后打開新建項(xiàng)目后的pom.xml

首先添加geotools的版本屬性

??? <properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><geotools.version>26-SNAPSHOT</geotools.version></properties>

這里使用的版本是26

然后在denpendencies中添加geotools相關(guān)的依賴

??????? <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.1</version><scope>test</scope></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-shapefile</artifactId><version>${geotools.version}</version></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-swing</artifactId><version>${geotools.version}</version></dependency>

添加完依賴之后,此時Maven會提示無法下載依賴,需要再添加repository,以供Maven去下載相關(guān)依賴

??? <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>

完整的pom文件代碼

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.3</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.badao</groupId><artifactId>geotoolsdemo</artifactId><version>0.0.1-SNAPSHOT</version><name>geotoolsdemo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><geotools.version>26-SNAPSHOT</geotools.version></properties><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><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.1</version><scope>test</scope></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-shapefile</artifactId><version>${geotools.version}</version></dependency><dependency><groupId>org.geotools</groupId><artifactId>gt-swing</artifactId><version>${geotools.version}</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

然后就是等待Maven去下載相關(guān)依賴

下載完成后就可以在項(xiàng)目依賴中看到

?

然后在包下新建一個java類叫quickstart

?

此類的示例代碼為

package com.badao.geotoolsdemo; import java.io.File; 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; public class Quickstart {public static void main(String[] args) throws Exception {// display a data store file chooser dialog for shapefilesFile 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 itMapContent map = new MapContent();map.setTitle("Quickstart");Style style = SLD.createSimpleStyle(featureSource.getSchema());Layer layer = new FeatureLayer(featureSource, style);map.addLayer(layer);// Now display the mapJMapFrame.showMap(map);} }

然后運(yùn)行此類的main方法

?

會彈出選擇shp文件的選擇框

Shapefile屬于一種矢量圖形格式,它能夠保存幾何圖形的位置及相關(guān)屬性。但這種格式?jīng)]法存儲地理數(shù)據(jù)的拓?fù)湫畔ⅰ?/p>

其中,要組成一個Shapefile,有三個文件是必不可少的,它們分別是".shp", ".shx"與 ".dbf"文件

.shp— 圖形格式,用于保存元素的幾何實(shí)體。
.shx— 圖形索引格式。幾何體位置索引,記錄每一個幾何體在shp文件之中的位置,能夠加快向前或向后搜索一個幾何體的效率。
.dbf— 屬性數(shù)據(jù)格式,以dBase IV的數(shù)據(jù)表格式存儲每個幾何形狀的屬性數(shù)據(jù)。

首先你要有一個shp文件,這里提供一個中國省級行政區(qū)劃_shp地圖數(shù)據(jù)文件:

https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/15785012

注意選擇的shp文件不要有中文名和中文路徑

?

然后點(diǎn)擊打開

?

?

總結(jié)

以上是生活随笔為你收集整理的Geotools简介以及quickstsrt加载shp文件并显示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。