GeoServer发布MongoDB中的shp数据全流程梳理
创始人
2024-11-19 19:34:23
0

目录

  • 前言
  • 1.shp转geojson
  • 2.shp导入MongoDB
  • 3.创建空间索引
  • 4.GeoServer安装MongoDB插件
  • 5.发布
  • 6.注意事项
    • 6.1 geojson要去掉头尾
    • 6.2 MongoDB4.4以上的mongoimport工具需要额外安装
    • 6.3 空间索引是必须项
  • 7.总结

前言

  网上搜到的GeoServer发布MongoDB中的矢量数据或shp数据的文章比较少,有一些文章还设置了付费可见,十分不方便。鉴于此,我们发一期shp数据到MongoDB再到GeoServer的过程梳理。

1.shp转geojson

  由于MongoDB是文档型数据库,因此需要先将shpgeojson,然后才能存入MongoDB,我们使用ogr2ogr工具将shpgeojsonogr2ogr工具被集成到了QGISPostgreSQLGDAL中,因此只要你安装了三者中的任意一个软件,都可以使用这个工具。本文以QGIS为例,ogr2ogr工具一般都位于bin目录下,如QGIS中位置如下图:
在这里插入图片描述
在这个目录下直接输入cmd后回车,cmd就进入了这个目录,然后输入ogr2og --help即可看到相应的帮助说明。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
shpgeojson的命令为:

//ogr2ogr -f geojson  <源shp路径> ogr2ogr -f geojson D:\test\test.geojson D:\test\shp\testline.shp 

在这里插入图片描述
执行完毕之后会看到已经出现了geojson文件
在这里插入图片描述
打开这个文件看看,OK,非常完美,标准的geojson
在这里插入图片描述

2.shp导入MongoDB

  接下来我们就需要将shp导入MongoDB了,先来看看MongoDB的安装路径如下:
在这里插入图片描述

注意:从MongoDB4.4开始,mongodump.exe 、mongoexport.exe 、mongoimport.exe等数据库工具需要单独安装,所以当你看到你的MongoDBbin目录下并没有这几个工具的时候,不要惊讶,不要着急。下载地址为:https://www.MongoDB.com/try/download/database-tools

  shp导入MongoDB,首先我们需要将上面转成功的geojson处理一下,把原始的geojson的头尾去掉,也就是只留features
在这里插入图片描述
变为这样:
在这里插入图片描述
cmd进入MongoDBbin路径下,执行如下命令:

//mongoimport -h localhost:27017 -d dbname -c collectionname --file  --jsonArray mongoimport -h localhost:27017 -d MLM -c cjg_roads --file "D:\test\test.geojson" --jsonArray 

看到MongoDB中已经导入了数据
在这里插入图片描述

3.创建空间索引

  这一步在MongoDB中是必选项,使用其他数据库时,比如PostGIS、MySQL等并不需要。为什么要创建空间索引?因为不创建空间索引就会导致发布时找不到图层
在这里插入图片描述
创建空间索引的命令为:

//cjg_roads是集合名称 db.cjg_roads.createIndex({     "geometry": "2dsphere" })  

确保geometry字段显示了索引
在这里插入图片描述

4.GeoServer安装MongoDB插件

  到GeoServer官网下载自己的GeoServer版本对应的MongoDB插件即可。

https://GeoServer.org/download/#archive

在这里插入图片描述
在这里插入图片描述
下载完成后解压到GeoServerwebapps\geoserver\WEB-INF\lib目录下即可,然后重启GeoServer
在这里插入图片描述

5.发布

  经过了前面的步骤,发布就顺理成章了,点击新建数据存储,选择MongoDB即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.注意事项

6.1 geojson要去掉头尾

为什么要把头尾去掉?如果不去掉头尾,那么导入命令是这样的:

 //mongoimport -h localhost:27017 -d test -c json --type json --file  mongoimport -h localhost:27017 -d MLM -c trees --type json --file "D:\test\test.geojson" 

最后在GeoServer中发布时就会遇到坐标范围计算失败的问题
在这里插入图片描述

6.2 MongoDB4.4以上的mongoimport工具需要额外安装

  前文已经说过,从MongoDB4.4开始,mongodump.exe 、mongoexport.exe 、mongoimport.exe等数据库工具需要单独安装,所以当你看到你的MongoDB的bin目录下并没有这几个工具的时候,不要惊讶,不要着急。下载地址为:https://www.mongodb.com/try/download/database-tools

6.3 空间索引是必须项

  前文也说过了,没有空间索引,或空间索引未生效,会导致添加图层时读取不到图层,这里也就不再赘述了。

7.总结

  本文详细的梳理shp文件导入到MongoDB的过程,以及在GeoServer中发布的全过程,并提出了几个注意点,希望能引起读者的注意,回见~

相关内容

热门资讯

透视实锤!哈糖大菠萝助手,竞技... 透视实锤!哈糖大菠萝助手,竞技联盟辅助(原来真的有挂);1、打开软件启动之后找到中间准星的标志长按。...
透视安装!德普之星透视软件免费... 透视安装!德普之星透视软件免费入口官网(透视)透视辅助软件下载(都是有挂);亲,关键说明,德普之星透...
透视辅助!werplan透视挂... 透视辅助!werplan透视挂,拱趴大菠萝有什么挂(其实真的是有挂)1、拱趴大菠萝有什么挂ai辅助优...
透视科技!德普之星app安卓版... 透视科技!德普之星app安卓版破解版(透视)辅助软件(本来有挂)进入游戏-大厅左侧-新手福利-激活码...
透视规律!werplan免费挂... 透视规律!werplan免费挂下载,线上德州的辅助器是什么(本来存在有挂)1)线上德州的辅助器是什么...
透视有挂!如何下载德普之星辅助... 透视有挂!如何下载德普之星辅助软件(透视)免费透视(总是有挂)1、如何下载德普之星辅助软件ai辅助优...
透视挂透视!xpoker透视辅... 透视挂透视!xpoker透视辅助,拱趴游戏破解器(原来真的是有挂)1、拱趴游戏破解器ai辅助优化,拱...
透视ai代打!德扑圈透视挂(透... 透视ai代打!德扑圈透视挂(透视)辅助器app(确实存在有挂)1、在德扑圈透视挂ai机器人技巧中,中...
透视免费!xpoker辅助工具... 透视免费!xpoker辅助工具,werplan外卦神器(一贯真的是有挂)1、每一步都需要思考,不同水...
透视工具!德普之星辅助工具如何... 透视工具!德普之星辅助工具如何设置(透视)私人局辅助免费(都是是真的有挂)1、每一步都需要思考,不同...