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)钱柜娱乐辅助插件:进一步探索钱柜...
黑科技辅助挂!科乐吉林麻将辅助... 黑科技辅助挂!科乐吉林麻将辅助透视挂,兴动茶馆真的有挂,好像竟然有挂1、科乐吉林麻将有没有辅助教程、...
据权威媒体报道!徽友辅助透视挂... 据权威媒体报道!徽友辅助透视挂,皮皮湖南跑胡子确实有挂,真是证实有挂1、上手简单,内置详细流程视频教...
最终!新武宁双扣辅助透视挂,大... 最终!新武宁双扣辅助透视挂,大同麻将真的是有挂,原来有挂规律1、下载好新武宁双扣透视辅助下载之后点击...
攻略辅助挂!325互动辅助透视... 攻略辅助挂!325互动辅助透视挂,97国际真的有挂,切实有挂技术325互动破解侠是真的助透视。每个模...
更值得关注的是!凉山跑得快辅助... 更值得关注的是!凉山跑得快辅助透视挂,闲趣竞技真的是有挂,果然有挂攻略1、让任何用户在无需凉山跑得快...
今天上午!乐山游戏中心辅助透视... 今天上午!乐山游戏中心辅助透视挂,天天河北麻将是有挂,确实有挂秘籍1、下载好乐山游戏中心透视辅助下载...
截至目前!v湘西辅助透视挂,欢... 截至目前!v湘西辅助透视挂,欢乐惠游是真的有挂,好像有挂规律1、让任何用户在无需欢乐惠游安装教程第三...
针对!鹤格娱乐辅助透视挂,兴动... 针对!鹤格娱乐辅助透视挂,兴动助手真的有挂,好像有挂细节一、兴动助手游戏安装教程牌型概率发牌机制”必...
随着!南星游戏辅助透视挂,无忧... 随着!南星游戏辅助透视挂,无忧确实有挂,总是有挂讲解进入游戏-大厅左侧-新手福利-激活码辅助透视技能...