From 1fdeb5ea66594e0b6ee00196cc543d7c5c74325e Mon Sep 17 00:00:00 2001 From: qiushijie Date: Tue, 16 Jan 2024 17:19:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9geotools=E7=9A=84=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/article/db/centospg.md | 49 ++--------- docs/article/db/postgresqlrestore.md | 84 ++++++++----------- docs/article/devops/index.md | 58 ++++--------- docs/article/gis/geotools/01startup.md | 13 +-- .../{03Architecture.md => 02Architecture.md} | 54 +++++++----- .../geotools/{02feature.md => 03feature.md} | 29 +------ docs/article/gis/geotools/04FeatureQuery.md | 58 ++----------- 7 files changed, 99 insertions(+), 246 deletions(-) rename docs/article/gis/geotools/{03Architecture.md => 02Architecture.md} (81%) rename docs/article/gis/geotools/{02feature.md => 03feature.md} (99%) diff --git a/docs/article/db/centospg.md b/docs/article/db/centospg.md index c653b4f..f893edc 100644 --- a/docs/article/db/centospg.md +++ b/docs/article/db/centospg.md @@ -33,11 +33,8 @@ CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" - ``` - - ### 2.安装PostgreSQL > 官方教程:https://www.postgresql.org/download/linux/redhat/ @@ -80,8 +77,6 @@ GRANT #exit可退出bash命令行 ``` - - #### 2.2.配置连接 > 安装完pg之后,默认是只接受本地访问连接。 @@ -137,7 +132,6 @@ host all all ::1/128 scram-sha-256 local replication all peer host replication all 127.0.0.1/32 scram-sha-256 host replication all ::1/128 scram-sha-256 - ``` 3、重启pg @@ -160,7 +154,6 @@ success # 检查是否生效 [root@localhost data]# firewall-cmd --zone=public --query-port=5432/tcp yes - ``` ```shell @@ -173,10 +166,6 @@ ps -ef|grep svn netstat -lntup ``` - - - - ### 3安装PostGIS > 官方教程:https://postgis.net/install/ @@ -239,13 +228,10 @@ postgis31_14-gui.x86_64 : GUI for PostGIS postgis31_14-utils.x86_64 : The utils for PostGIS Name and summary matches only, use "search all" for everything. - ``` [这里](https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS)可以查看postgis与pg版本支持的对应关系。 - - 3、在指定的数据库(`test`)中启用postgis空间扩展: ```shell @@ -290,8 +276,6 @@ CREATE EXTENSION address_standardizer_data_us; CREATE EXTENSION postgis_tiger_geocoder; ``` - - ### 4.GeoServer #### 4.1 查看是否有jre @@ -301,7 +285,6 @@ CREATE EXTENSION postgis_tiger_geocoder; java version "1.8.0_291" Java(TM) SE Runtime Environment (build 1.8.0_291-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode) - ``` #### 4.2 安装Tomcat @@ -314,7 +297,6 @@ Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode) [root@localhost Downloads]# wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz [root@localhost Downloads]# tar xvf apache-tomcat-9.0.68.tar.gz -C /usr/local/ [root@localhost Downloads]# mv /usr/local/apache-tomcat-9.0.68/ /usr/local/tomcat/ - ``` 2、修改tomcat配置 @@ -331,7 +313,7 @@ export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 配置tomcat的方式有很多: - 在全局的/etc/profile中添加`TOMCAT_HOME`、`CATALINA_HOME`、`CLASS_PATH`,网上示例: - + ```shell export JAVA_HOME=/usr/local/java export TOMCAT_HOME=/usr/local/tomcat @@ -341,7 +323,7 @@ export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 ``` - 在`catalina.sh`文件和`setclasspath.sh`文件添加Java的路径 - + ```shell #修改setclasspath.sh vi /usr/local/tomcat/bin/setclasspath.sh @@ -354,8 +336,6 @@ export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 ``` - - 3、修改端口 ```shell @@ -370,8 +350,6 @@ export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 :wq ``` - - ```shell # 暴露端口 [root@localhost bin]# firewall-cmd --add-port=8088/tcp --permanent @@ -385,7 +363,6 @@ export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 [root@localhost bin]# cd /usr/local/tomcat/bin && sh startup.sh [root@localhost bin]# cd /usr/local/tomcat/bin && sh shutdown.sh - ``` 5、设置开机启动 @@ -393,7 +370,7 @@ export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 配置Tomcat开机启动很简单,将Tomcat配置为系统服务即可。 - 配置tomcat9.service: - + ```shell #创建Tomcat9服务文件 vi /usr/lib/systemd/system/tomcat9.service @@ -415,10 +392,8 @@ export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 WantedBy=multi-user.target ``` - - - 配置开机启动: - + ```shell #设置Tomcat9开机启动 systemctl enable tomcat9 @@ -427,8 +402,6 @@ export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 systemctl start tomcat9 ``` - - #### 4.3 部署geoserver.war包 ```shell @@ -436,7 +409,6 @@ export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 [root@localhost webapps]# pwd /usr/local/tomcat/webapps [root@localhost webapps]# wget https://sourceforge.net/projects/geoserver/files/GeoServer/2.21.2/geoserver-2.21.2-war.zip - ``` 下载失败! @@ -449,8 +421,6 @@ export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 重新启动一下tomcat - - ### 补充 **Tomcat配置跨域** @@ -458,7 +428,7 @@ export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 1. 引用跨域报 `cors-filter.jar`、`java-property-utils.jar` 2. 修改Tomcat的配置文件`config\web.xml`,在根节点追加: - + ```xml CORS @@ -471,12 +441,3 @@ export JAVA_HOME=/newData/installPackage/jdk1.8.0_291 ``` 3. 重启Tomcat - - - - - - - - - diff --git a/docs/article/db/postgresqlrestore.md b/docs/article/db/postgresqlrestore.md index 5f96729..79e7488 100644 --- a/docs/article/db/postgresqlrestore.md +++ b/docs/article/db/postgresqlrestore.md @@ -8,8 +8,6 @@ categories: - Database --- - - ## Postgresql 备份方式 ### 1. 数据库备份的分类类型 @@ -68,14 +66,14 @@ COPY webapi.concept_of_interest (id, concept_id, concept_of_interest_id) FROM st 当该脚本作为sql脚本运行时,它会失败,并显示以下错误。 - 用IDEA连接去执行sql文件时,会报错, - + ```shell [57014] ERROR: COPY from stdin failed: COPY commands are only supported using the CopyManager API. [11:21:06] 在位置:COPY webapi.concept_of_interest, line 1 ``` - 用pgAdmin 还原时,会报错: - + ```shell pg_restore.exe --host "192.168.1.1" --port "5432" --username "postgres" --no-password --dbname "webapi" --verbose "D:\\backup\\webapi.sql" pg_restore: 错误: 输入文件看起来像是文本格式的dump. 请使用psql. @@ -190,8 +188,6 @@ pg_dump.exe -d "rural_house_330000" -h "192.168.4.199" -p "5432" -U "postgres" - pg_dump. --inserts --dbname=postgresql://postgres:rural_house_330000@192.168.4.199:5432/rural_house_330000 -t "risk_census_house_330100_jffx" >D:\augurit\backup\jffx.sql ``` - - **可能遇到的问题:** `pg_dump`命令需要输入密码才能执行。若想无需密码导数据有以下两种解决方法: @@ -208,7 +204,6 @@ export PGPASSWORD='' # TYPE DATABASE USER ADDRESS METHOD # IPv4 local connections: host all all 127.0.0.1/32 md5 - ``` - TYPE(连接方式):'local'(unix-domain的socket连接)、`host` (TCP/IP socket)、`hostssl`(SSL加密的TCP/IP socket) @@ -220,15 +215,15 @@ host all all 127.0.0.1/32 md5 - ADDRESS:该参数可以为 `主机名称` 或者`IP/32(IPV4) `或 `IP/128(IPV6)`,主机名称以 `.`开头,`samehost`或`samenet` 匹配任意Ip地址 - METHOD:该值可以为"trust", "reject", "md5", "password", "scram-sha-256","gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert" - + > trust:无条件地允许联接。建议测试用 - > + > > reject:联接无条件拒绝。从一个组中"过滤"某些主机。 - > + > > md5:密码认证方式。密码是以md5形式传送给数据库 - > + > > password:要求客户端提供一个未加密的口令进行认证。 - > + > > ident:是Linux下PostgreSQL默认的local认证方式, 例子表示允许 ip为127.0.0.1的所有用户通过md5加密的密码方式连接主机上的所有数据库 @@ -242,8 +237,6 @@ host all all 127.0.0.1/32 md5 8 -> 192.0.0.0/8 表示只要来自192.0.0.0 ~ 192.255.255.255的都合法; ``` - - ### 3.还原(pg_restore) pg_restore — 从pg_dump创建的档案文件中恢复PostgreSQL数据库,是一种实用程序,用于以非明文格式之一的[pg_dump](https://www.postgresql.org/docs/12/app-pgdump.html)创建的存档文件中恢复PostgreSQL数据库 @@ -256,43 +249,43 @@ pg_restore[ connection-option...] [ option...] [ filename] 一般选项: - ```javascript - -d, --dbname=名字 连接数据库名字 - -f, --file=文件名 输出文件名 - -F, --format=c|d|t 备份文件格式(应该自动进行) - -l, --list 打印归档文件的 TOC 概述 - -v, --verbose 详细模式 - -V, --version 输出版本信息, 然后退出 - -?, --help 显示此帮助, 然后退出 - ``` +```javascript + -d, --dbname=名字 连接数据库名字 + -f, --file=文件名 输出文件名 + -F, --format=c|d|t 备份文件格式(应该自动进行) + -l, --list 打印归档文件的 TOC 概述 + -v, --verbose 详细模式 + -V, --version 输出版本信息, 然后退出 + -?, --help 显示此帮助, 然后退出 +``` 恢复控制选项: ```javascript -a, --data-only 只恢复数据, 不包括模式 - -c, --clean 在重新创建之前,先清除(删除)数据库对象 + -c, --clean 在重新创建之前,先清除(删除)数据库对象 -C, --create 创建目标数据库 -e, --exit-on-error 发生错误退出, 默认为继续 -I, --index=NAME 恢复指定名称的索引 -j, --jobs=NUM 执行多个并行任务进行恢复工作 -L, --use-list=FILENAME 从这个文件中使用指定的内容表排序输出 -n, --schema=NAME 在这个模式中只恢复对象 - -O, --no-owner 不恢复对象所属者 - -P, --function=NAME(args) 恢复指定名字的函数 - -s, --schema-only 只恢复模式, 不包括数据 - -S, --superuser=NAME 使用指定的超级用户来禁用触发器 - -t, --table=NAME 恢复命名表 - -T, --trigger=NAME 恢复指定名字的触发器 - -x, --no-privileges 跳过处理权限的恢复 (grant/revoke) - -1, --single-transaction 作为单个事务恢复 - --disable-triggers 在只恢复数据的过程中禁用触发器 - --enable-row-security 启用行安全性 - --if-exists 当删除对象时使用IF EXISTS - --no-data-for-failed-tables 对那些无法创建的表不进行数据恢复 - --no-security-labels 不恢复安全标签信息 - --no-tablespaces 不恢复表空间的分配信息 - --section=SECTION 恢复命名节 (数据前、数据及数据后) - --use-set-session-authorization 使用 SESSION AUTHORIZATION 命令代替ALTER OWNER 命令来设置所有权 + -O, --no-owner 不恢复对象所属者 + -P, --function=NAME(args) 恢复指定名字的函数 + -s, --schema-only 只恢复模式, 不包括数据 + -S, --superuser=NAME 使用指定的超级用户来禁用触发器 + -t, --table=NAME 恢复命名表 + -T, --trigger=NAME 恢复指定名字的触发器 + -x, --no-privileges 跳过处理权限的恢复 (grant/revoke) + -1, --single-transaction 作为单个事务恢复 + --disable-triggers 在只恢复数据的过程中禁用触发器 + --enable-row-security 启用行安全性 + --if-exists 当删除对象时使用IF EXISTS + --no-data-for-failed-tables 对那些无法创建的表不进行数据恢复 + --no-security-labels 不恢复安全标签信息 + --no-tablespaces 不恢复表空间的分配信息 + --section=SECTION 恢复命名节 (数据前、数据及数据后) + --use-set-session-authorization 使用 SESSION AUTHORIZATION 命令代替ALTER OWNER 命令来设置所有权 ``` 联接选项: @@ -328,8 +321,6 @@ pg_restore --host "192.168.1.1" --port "5432" --username "postgres" --no-passwor 如果pg的数据目录没有挂载出来,可以用`docker cp [source] [target]`命令将备份文件拷贝出来或获取备份文件。 - - ### 参考文章 [1] https://www.jianshu.com/p/74063898e9ff @@ -337,12 +328,3 @@ pg_restore --host "192.168.1.1" --port "5432" --username "postgres" --no-passwor [2] https://blog.csdn.net/u011365831/article/details/79497596 [3] https://www.5axxw.com/questions/content/u5jus5 - - - - - - - - - diff --git a/docs/article/devops/index.md b/docs/article/devops/index.md index 505588e..d452ea0 100644 --- a/docs/article/devops/index.md +++ b/docs/article/devops/index.md @@ -28,7 +28,7 @@ categories: 4. 相对容易处理冲突。 5. 大部分操作在本地完成,不需要联网。 -## 二、安装配置 +## 二、安装配置 **windows**: @@ -51,13 +51,13 @@ Git 提供了一个叫做 git config 的工具(译注:实际是 git-config 配置Git环境: - 全局配置:/etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。 - + ```shell $ git config --system user.name "John Doe" ``` - 用户级别配置:~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。 - + ```shell # 一般使用用户级别 # 创建Gitbase账号 @@ -71,9 +71,7 @@ Git 提供了一个叫做 git config 的工具(译注:实际是 git-config $ git config --list ``` - - -## 三、`Git`常用命令 +## 三、`Git`常用命令 ![image-20210105165728632](./images/image-20210105165728632.png) @@ -142,8 +140,6 @@ $ git log 2. `git reset HEAD`— 已经git add的文件,可以用这个取消add,然后用上一条命令恢复 3. `git reset –hard HEAD `—把全部更改的文件都恢复(慎用) - - **远程服务器**: ```shell @@ -178,7 +174,7 @@ $ git remote add origin 仓库地址 - `git fetch `:会抓取克隆或上次抓取后所有的新推送 - `git pull `:会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支(**更新操作**) - + > `git fetch` 命令只会将数据下载到你的本地仓库,它并不会自动合并或修改你当前的工作。 ```shell @@ -187,7 +183,6 @@ $ git pull 仓库地址 master #(更新)拉取远程master的代码 $ git pull origin master - ``` #### 3.提交操作 @@ -202,21 +197,23 @@ $ git push -u origin master - `git remote remove `:移除远程仓库 - `git remote rename `:重命名 - - #### 4.分支 - `git branch`:显示所有本地分支 - `git branch 分支名`:创建分支 + - `git branch -d 分支名`:删除本地分支 + - `git checkout 分支名`:切换分支 + - `git pull origin master`:拉取远程master分支 + - `git merge 分支名`:合并指定分支到当前分支 - `git push origin master`:上传代码并合并 -- `git push origin feature-branch:feature-branch` //推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支(没有会自动创建) +- `git push origin feature-branch:feature-branch` //推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支(没有会自动创建) ```shell $ git pull @@ -226,10 +223,6 @@ $ git commit -m '备注' $ git push ``` - - - - ## 四、应用 在`gitlab`上创建一个git仓库(空项目)后,有三种情况上传项目: @@ -280,8 +273,6 @@ $ git remote -v $ git set-url origin 仓库地址 ``` - - **分支** 场景:有时候我们开发需要开一个分支,这样可以有效的并行开发. @@ -289,28 +280,26 @@ $ git set-url origin 仓库地址 开分支有两种方式: + 一种是在远程开好分支,本地直接拉下来; - + ```shell git checkout -b 本地分支名 origin/远程分支名XXX //检出远程的XX分支到本地 ``` - + 使用这种方式会在本地仓库新建分支xxx,并自动切换到新建的分支xxx,当然了远程分支xxx的代码也拉取到了本地分支xxx中。采用这种方法建立的本地分支会和远程分支建立映射关系。 + 一种是本地开好分支,推送到远程. - + ```shell $ git checkout -b feature-branch //创建并切换到分支feature-branch $ git push origin feature-branch:feature-branch //推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支(没有会自动创建) ``` - -+ 当本地没有其他分支时,可以直接克隆分支下来 ++ 当本地没有其他分支时,可以直接克隆分支下来 + ```shell $ git clone -b 分支名 仓库地址 ``` - - > git fetch 命令可以刷新本地的远程分支列表 项目实战: @@ -327,21 +316,4 @@ git pull origin dev # 4.合并远程的分支到dev分 git merge origin 分支名 - - ``` - - - - - - - - - - - - - - - diff --git a/docs/article/gis/geotools/01startup.md b/docs/article/gis/geotools/01startup.md index 6c87557..d5ecb9b 100644 --- a/docs/article/gis/geotools/01startup.md +++ b/docs/article/gis/geotools/01startup.md @@ -8,8 +8,6 @@ tags: - GeoTools --- - - ### GeoTools-快速起步 #### 1.maven构建 @@ -22,8 +20,6 @@ tags: ![image-20231120113304413](./images/image-20231120113304413.png) - - #### 2. 添加依赖 ```xml @@ -31,7 +27,7 @@ tags: UTF-8 1.7 1.7 - + 31-SNAPSHOT true @@ -73,8 +69,6 @@ tags: ``` - - #### 3. 主程序 ```java @@ -104,7 +98,7 @@ public class Quickstart { * contents on the screen in a map frame */ public static void main(String[] args) throws Exception { - + File file = JFileDataStoreChooser.showOpenFile("shp", null); if (file == null) { return; @@ -133,8 +127,6 @@ public class Quickstart { 注意:shp文件没有被加载到内存中,而是每次需要时都从磁盘读取它。这种方式允许您处理大于内存的数据集。 - - #### 4. advance 为了更好的交互体验,我们可以通过`DataStoreFinder`获取数据源时添加额外的参数,如设置缓存、创建空间索引等方法来优化。 @@ -151,4 +143,3 @@ params.put("charset", "UTF-8"); DataStore store = DataStoreFinder.getDataStore(params); SimpleFeatureSource featureSource = store.getFeatureSource(store.getTypeNames()[0]); ``` - diff --git a/docs/article/gis/geotools/03Architecture.md b/docs/article/gis/geotools/02Architecture.md similarity index 81% rename from docs/article/gis/geotools/03Architecture.md rename to docs/article/gis/geotools/02Architecture.md index 674a3a1..6f5ef43 100644 --- a/docs/article/gis/geotools/03Architecture.md +++ b/docs/article/gis/geotools/02Architecture.md @@ -14,10 +14,10 @@ tags: GeoTools是一个开源(LGPL) Java代码库,它为地理空间数据的操作提供了符合标准的方法,例如实现地理信息系统。GeoTools库数据结构基于开放地理空间联盟(OGC)规范。 -了解GeoTools库是如何构建的,这有助于您找出需要在应用程序中包含哪些jar。 - ### 2. GeoTools 库 +> 了解GeoTools库是如何构建的,这有助于您找出需要在应用程序中包含哪些jar。 + ![image-20231128145948967](./images/image-20231128145948967.png) GeoTools库形成了一个软件“堆栈”,每个模块都建立在前一个定义的模块之上。 @@ -31,25 +31,25 @@ GeoTools库形成了一个软件“堆栈”,每个模块都建立在前一个 下面是各个模块的作用: -| Module | Purpose | -| :--------------- | :----------------------------------------------------------- | -| `gt-render` | Map API, with Java2D rendering engine for mapping. | -| `gt-jdbc` | Implements for accessing spatial database | -| `gt-xml` | Implements of common spatial XML formats | -| `gt-cql` | Implements of Common Query Language for filters | -| `gt-coverage` | Implementation for accessing raster information | +| Module | Purpose | +|:---------------- |:--------------------------------------------------------------- | +| `gt-render` | Map API, with Java2D rendering engine for mapping. | +| `gt-jdbc` | Implements for accessing spatial database | +| `gt-xml` | Implements of common spatial XML formats | +| `gt-cql` | Implements of Common Query Language for filters | +| `gt-coverage` | Implementation for accessing raster information | | `gt-main` | Data API, with default implementations of filter, feature, etc… | -| `gt-referencing` | Implementation of co-ordinate location and transformation | -| `gt-metadata` | Implementation of identification and description | -| `gt-api` | Definition of interfaces for common spatial concepts | -| `jts` | JTS Topology Suite (external library) implementing Geometry | +| `gt-referencing` | Implementation of coordinate location and transformation | +| `gt-metadata` | Implementation of identification and description | +| `gt-api` | Definition of interfaces for common spatial concepts | +| `jts` | JTS Topology Suite (external library) implementing Geometry | ### 3. GeoTools 插件 GeoTools提供插件来支持额外的数据格式和不同的坐标参考系统等功能。 | Module | JAR | Plugin | -| :--------------- | :------------------ | :------------------------------- | +|:---------------- |:------------------- |:-------------------------------- | | `gt-render` | | | | `gt-jdbc` | `gt-jdbc-db2` | Geometry in DB2 | | | `gt-jdbc-h2` | Pure Java “H2” database | @@ -76,8 +76,6 @@ GeoTools提供插件来支持额外的数据格式和不同的坐标参考系统 通常,每个层至少需要一个插件才能让GeoTools做一些事情。 - - ### 4.GeoTools 扩展 更进一步,在GeoTools库的基础上实现了一些有趣的“扩展”。这些扩展提供了使用核心库的全部功能构建在GeoTools之上的额外功能。 @@ -87,7 +85,7 @@ GeoTools提供插件来支持额外的数据格式和不同的坐标参考系统 这些扩展相互独立,可能在您的应用程序中使用: | JAR | Extension | -| :-------------- | :--------------------------------------------------- | +|:--------------- |:---------------------------------------------------- | | `gt-app-schema` | Map from application schema to complex feature model | | `gt-brewer` | Generation of styles using color brewer | | `gt-complex` | Support for making custom complex feature model | @@ -105,7 +103,7 @@ GeoTools提供插件来支持额外的数据格式和不同的坐标参考系统 为了支持GeoTools中的XML模块,我们以JAR形式捆绑了几个XML模式(以避免每次需要时都需要从Internet下载它们)。此外,这些jar包含一个由Eclipse Modeling Framework生成的Java数据结构。 | JAR | Schema | -| :---------------- | :---------------------------- | +|:----------------- |:----------------------------- | | `net.opengis.ows` | open web services schema | | `net.opengis.wfs` | web feature service | | `net.opengis.wps` | web processing service schema | @@ -116,7 +114,7 @@ GeoTools提供插件来支持额外的数据格式和不同的坐标参考系统 XSD解析器通过一系列XSD插件使用这些工具。这些插件指示如何使用Eclipse XSD库解析和编码附加内容,以解析XML模式文档,并提供“绑定”,显示如何解析和编码Java类,如String、Date、URL和Geometry。 | JAR | Bindings | -| :-------------- | :-------------------------------- | +|:--------------- |:--------------------------------- | | `gt-xsd-core` | Basic types defined by XML schema | | `gt-xsd-fes` | filter 2.0 | | `gt-xsd-filter` | filter (used by OGC CAT and WFS) | @@ -130,6 +128,22 @@ XSD解析器通过一系列XSD插件使用这些工具。这些插件指示如 | `gt-xsd-wms` | web map service | | `gt-xsd-sld` | style layer descriptor | -#### 参考文章 +### 6. 不支持的部分 + +还有一些“不支持”的插件和扩展。这些模块不是由项目管理委员会作为GeoTools下载的一部分分发的,但是它们可以通过maven或个人下载获得。 + +| Unsupported | Purpose | +| ------------ | ----------------------------------------- | +| `gt-swt` | Standard widget toolkit interactive map | +| `gt-swing` | Swing interactive map | +| `gt-oracle` | retired oracle support | +| `gt-postgis` | retired PostGIS support,`gt-jdbc-postgis` | +| `gt-db2` | retired db2 support | +| `gt-wps` | Web Processing Service client | +| `gt-process` | Job system for spatial data | + + + +### 参考文章 [1] architecture https://docs.geotools.org/latest/userguide/welcome/architecture.html diff --git a/docs/article/gis/geotools/02feature.md b/docs/article/gis/geotools/03feature.md similarity index 99% rename from docs/article/gis/geotools/02feature.md rename to docs/article/gis/geotools/03feature.md index 2f81694..51852bc 100644 --- a/docs/article/gis/geotools/02feature.md +++ b/docs/article/gis/geotools/03feature.md @@ -11,7 +11,7 @@ tags: ### GeoTools-创建要素 > csv2shp,通过csv转点shp文件,学习: -> +> > 1. 如何创建`FeatureType`、`FeatureCollection`和`Features`; > 2. 通过`GeometryFactory`构建`Points`点集; > 3. 输出shp文件; @@ -40,8 +40,6 @@ LAT, LON, CITY, NUMBER 50.733992,7.099814,Bonn,700,2016 ``` - - #### 2.添加依赖 ```xml @@ -75,8 +73,6 @@ LAT, LON, CITY, NUMBER ``` - - #### 3. 示例 ```java @@ -217,7 +213,7 @@ public class Csv2Shape { * 添加类型描述 */ newDataStore.createSchema(TYPE); - + /* * Write the features to the shapefile * 创建“create”类型的事务,输出shapefile文件 @@ -293,17 +289,14 @@ public class Csv2Shape { return newFile; } } - ``` - - #### 4. 归纳 下面是Java中的一些对象与`Geospatial`中的类的对应关系: | Java | Geospatial | -| :------- | :------------ | +|:-------- |:------------- | | `Object` | `Feature` | | `Class` | `FeatureType` | | `Field` | `Attribute` | @@ -312,16 +305,12 @@ public class Csv2Shape { 1. 先创建 `SimpleFeatureType`,就像新建了一个`shpefile`文件一样,定义了shp 文件名和属性字段。 2. 通过缓冲流解析文件中的坐标和属性信息,使用`GeometryFactory`几何工厂实例创建几何实例,再通过`featureBuilder`构建要素实例`feature` - - ##### 数据存储 ![image-20231130111920373](./images/image-20231130111920373.png) `DataStore`代表一份要素数据的物理的源,如`shpaefile`文件、数据库(要素会转为SimpleFeature实例对象)。 - - ##### 要素存储 `FeatureSource` 提供更易于操作feature data要素数据的API,当使用数据源(如shapefile或数据库表)时,您将首先创建一个`DataStore`对象来连接到物理源,然后检索一个`FeatureSource`来处理要素数据。 @@ -336,12 +325,6 @@ FileDataStore store = FileDataStoreFinder.getDataStore(file); FeatureSource featureSource = store.getFeatureSource(); ``` - - - - - - ##### **事务** `Transaction` 是有要素存储`FeatureStore`的事务控制器。 @@ -350,12 +333,6 @@ FeatureSource featureSource = store.getFeatureSource(); 所有操作都被认为是在一个事务中进行的。`Transaction.AUTO_COMMIT`用于表示自动提交事务模式。 - - - - - - #### 参考文章 [1] Feature Tutorial https://docs.geotools.org/latest/userguide/tutorial/feature/csv2shp.html diff --git a/docs/article/gis/geotools/04FeatureQuery.md b/docs/article/gis/geotools/04FeatureQuery.md index 301c43d..b400177 100644 --- a/docs/article/gis/geotools/04FeatureQuery.md +++ b/docs/article/gis/geotools/04FeatureQuery.md @@ -16,13 +16,13 @@ tags: 个人观点:Java关于`JDBC`的一些概念,与`GeoTools`中的类的对应关系如下: -| GeoTools | JDBC | | -| :-------------------- | :-------------------------- | ---------------------- | -| `FeatureStore` | `Connection` | 数据库连接 | -| `FeatureSource` | `PreparedStatement`|`Table` | 句柄:语句执行者 | -| `FeatureCollection` | `ResultSet` | 结果集 | -| `AttributeDescriptor` | `ResultSetMetaData` | 结果集元数据(属性列) | -| `FeatureIterator` | | | +| GeoTools | JDBC | | +|:--------------------- |:------------------- | ----------- | +| `FeatureStore` | `Connection` | 数据库连接 | +| `FeatureSource` | `PreparedStatement` | `Table` | +| `FeatureCollection` | `ResultSet` | 结果集 | +| `AttributeDescriptor` | `ResultSetMetaData` | 结果集元数据(属性列) | +| `FeatureIterator` | | | 示例: @@ -63,50 +63,6 @@ while(simpleFeatureIterator.hasNext()) { ``` 从上述可以看到,不管是什么类型的数据源,访问的顺序是先通过`FeatureStore`连接数据源,然后从`store`中获取`FeatureSource`(类似于表),最后通过`cql`类来构建查询条件传入`FeatureSource`的`getFeatures`方法中,可以得到满足条件的要素集`FeatureCollection`。 - - - -1. 对接数据 -2. 数据录入 -3. 数据展示 -4. 资金拨付 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -