GeoServer发布MongoDB中的shp数据全流程梳理

news2024/9/9 1:07:29

目录

  • 前言
  • 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 <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 <json路径> --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 <json路径>
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中发布的全过程,并提出了几个注意点,希望能引起读者的注意,回见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958931.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

http协议与nginx

动态页面与静态页面的差别&#xff1a; &#xff08;1&#xff09;URL不同 静态⻚⾯链接⾥没有“?” 动态⻚⾯链接⾥包含“&#xff1f;” &#xff08;2&#xff09;后缀不同 (开发语⾔不同) 静态⻚⾯⼀般以 .html .htm .xml 为后缀 动态⻚⾯⼀般以 .php .jsp .py等为后…

我国工业大模型发展中的四个反差现象

以大模型为代表的新一代人工智能技术正加速推进新型工业化的变革进程。2024年1月&#xff0c;国务院常务会议研究部署推动人工智能赋能新型工业化有关工作&#xff0c;强调以人工智能和制造业深度融合为主线&#xff0c;以智能制造为主攻方向&#xff0c;以场景应用为牵引&…

【Git从入门到精通】——知识概述及Git安装

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大二学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…

Google Test的使用

Google Test支持的操作系统包含下面这些&#xff1a; 1、Linux 2、Mac OS X 3、Windows 4、Cygwin 5、MinGW 6、Windows Mobile 7、Symbian一、google test的基本使用步骤 1、包含gtest/gtest.h头文件 2、使用TEST()宏定义测试case 3、在测试体中使用gooletest断言进行值检查…

Java从入门到精通(十四) ~ 多线程

晚上好&#xff0c;愿这深深的夜色给你带来安宁&#xff0c;让温馨的夜晚抚平你一天的疲惫&#xff0c;美好的梦想在这个寂静的夜晚悄悄成长。 目录 前言 一、多线程是什么&#xff1f; Java中的多线程 二、使用步骤 1.创建方式 1.1 Thread 线程 1.2 Runnable 任务 1.…

视创云展:重塑线上会议体验,六大核心引领数字空间新纪元

视创云展以其革命性的“数字活动”解决方案为核心&#xff0c;精心构建了一个超越想象的未来数字世界。通过整合六大前沿技术模块&#xff0c;它不仅为参会者打造了一个身临其境的线上会议环境&#xff0c;更让每一位参与者都能跨越物理界限&#xff0c;深刻感受会议的每一个瞬…

2024经济师考试报名『注册流程』图解!

⏰报名时间&#xff1a;8月12日—9月11日 ☑️报名注册流程 1、经济师考试报名注册网站&#xff1a;中国人事考试网. 2、点击考生登录栏目中的【新用户注册】按钮&#xff0c;进行注册。 3、进入用户注册界面&#xff0c;填写注册信息。 4、填写完毕确认无误后点击【提交】&…

CMS61850客户端

近一年都比较忙&#xff0c;很久没有更新文档了。这次抽了点时间&#xff0c;把CMS61850的客户端再补上。方便大家进一步的学习。当然61850相关的文档已经写的快吐了。不出意外&#xff0c;这应该是最后一篇关于61850的文章了。 本次提供的demo&#xff0c;可直接在windows上运…

【React】WeChat微信网站应用登录之wxLogin.js

以下基于wxLogin.js在React应用中使用案例 实验环境 antd&#xff1a;^5.14.1next&#xff1a;14.1.0react&#xff1a;^18 组件调用示例 "use client";import { useEffect, useState } from "react"; import { WechatChannel } from "./channel&qu…

【论文阅读笔记】DeepCAD: A Deep Generative Network for Computer-Aided Design Models

1 引言 现有3D生成模型&#xff1a; 3D点云&#xff1a;大量离散的3D点组成的数据表示形式&#xff1b; 多边形网格&#xff1a;一系列相连的多边形组成的3D模型&#xff1b; 水平集场&#xff1a;使用数值函数来表示物体的边界&#xff0c;并根据函数值的正负来确定物体内部…

示波器显示屏5个名词解释(峰峰值、平均值、频率、占空率、上升时间)

一般在使用示波器时&#xff0c;需要找到示波器测量的一些数据&#xff0c;包括峰峰值、频率等&#xff0c;但所显示出的所有名词可能不是很能理解&#xff0c;小编今天就具体介绍一下。下图是一般我们调节过后的示波器显示屏的数据显示&#xff1a; 1、峰-峰值 &#xff08;Pe…

Clickhouse 生产集群部署(Centos 环境)

文章目录 机器环境配置安装 JDK 8安装 zookeeperClickhouse 集群安装rpm 包离线安装修改全局配置zookeeper配置Shard和Replica设置image.png添加macros配置启动 clickhouse启动 10.82.46.135 clickhouse server启动 10.82.46.163 clickhouse server启动 10.82.46.218 clickhous…

Python中的类型注解和静态类型检查使用详解

概要 Python作为一种动态类型语言,其灵活性和易用性使其广受欢迎。然而,动态类型也带来了一些问题,如代码可读性差和运行时错误等。为了提高代码质量和可维护性,Python从3.5版本开始引入了类型注解(Type Hints),并且借助第三方工具可以实现静态类型检查。本文将详细介绍…

熊猫乳品再创新高:超高温灭菌稀奶油,驱动餐饮品质升级

随着餐饮行业的蓬勃发展&#xff0c;乳制品在餐饮端的应用日益广泛且需求多样化。中华老字号品牌企业熊猫乳品&#xff0c;在近期推出了专为餐饮定制的高品质产品-熊猫乳品超高温灭菌稀奶油&#xff0c;凭借其卓越性能&#xff0c;在多项测试中脱颖而出&#xff0c;成为餐饮制作…

Docker入门指南:基础命令、操作容器与镜像管理,附存储、网络及Compose应用

Docker命令 下载镜像 命令命令示例docker search 镜像名检索镜像docker search nginxdocker pull 镜像名下载镜像docker pull nginxdocker images / docker image ls查看镜像列表/docker rmi 镜像名/IMAGE ID删除指定镜像docker rmi nginx / docker rmi e784f4560448 镜像名&…

【计算机网络】TCP和UDP的封装以及案例

TCP和UDP的封装以及案例 背景知识TCP实现UDP实现封装Network用NetWork再次实现TCP和UDP小知识点 背景知识 TCP&#xff1a;传输控制协议&#xff08;Transmission Control Protocol&#xff09; UDP&#xff1a;用户数据报协议 &#xff08;User Datagram Protocol&#xff09…

二叉树--堆(上卷)

二叉树–堆&#xff08;上卷&#xff09; 树 树的概念与结构 树是⼀种⾮线性的数据结构&#xff0c;它是由 n&#xff08;n>0&#xff09; 个有限结点组成⼀个具有层次关系的集合。把它叫做 树是因为它看起来像⼀棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;⽽…

重新定义高性能轻薄本!华硕灵耀16 Air评测:锐龙AI 9 HX 370当今最优秀移动处理器...

一、前言&#xff1a;制程工艺不变 IPC性能暴涨20%的Zen 5架构 这十年来AMD的CPU给我们带来了一次又一次的惊喜&#xff01; 今天上市AI PC所搭载的锐龙AI 300系列处理器&#xff0c;与上代的锐龙8000系列移动处理器一样&#xff0c;都是采用了台积电4nm先进工艺。 但如标题所言…

什么是杀猪盘?

GPT-4o (OpenAI) "杀猪盘"是一种常见的网络诈骗形式&#xff0c;也被称为“爱情投资诈骗”或“婚恋诈骗”。这种骗局通常有以下几个关键步骤&#xff1a; 1. **接触和交流**&#xff1a;诈骗者在交友平台或社交媒体上创建虚假的个人资料&#xff0c;吸引受害者&…

Sentinel 核心概念和工作流程详解

前言&#xff1a; 上一篇文章中&#xff0c;我们对 Sentinel 有了基本认知&#xff0c;知道其是 Alibaba 开源的一个服务稳定性组件&#xff0c;我们从 Sentinel 控制台认识了 Sentinel 的流控、降级、热点、授权规则&#xff0c;本篇我们将从核心概念和工作流程方面继续分析 …