百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

手把手教你做GIS地图——第一节搭建GIS地图服务

bigegpt 2024-08-24 23:05 2 浏览

一、前言

在2020年之前,从未接触过相关Gis的开发技术,和大家一样,只是调用过百度地图、谷歌地图开放的API,实现地图的展示功能。对于GIS的理解,只在效果上,从来不知道,地图是如何实现的。 2020年,本人有幸参与国家铁路设计院,对于全国铁路及地理空间矢量化、路径搜索、铁路大数据分析的项目需求,才对Gis进行深入的学习,通过学习指导实践,最终完成系统的设计和开发。基于此项目的理解,将所学到的知识做下总结,同时分享给大家。


二、概念

? GIS:全称Geographic Information System,中文:地理信息系统

? OGC标准: 开放地理联合会是一个参与一致进程以开发公开地理处理规格的384家公司、政府机构、大学和个人组成的国际行业联合会。由OpenGIS规格定义的开放接口和协议,支持可互操作的解决方案,网络、无线和定位服务和主流IT。让复杂的空间信息和服务在各种应用可以被授权技术开发人员使用。开放地理联合会协议包括网络地图服务WMS和网络功能服务WFS。 地理信息系统由OGC产品划分为两大类型,基于遵循OGC规格的完整准确的软件。 地理信息系统技术标准促进GIS工具进行交流。 兼容的产品是符合OpenGIS规范的软件产品。当一个产品经过测试,并通过OGC测试项目证明是兼容的,这个产品就在这个地点上自动注册为“兼容”。 现实软件产品,即实现OpenGIS规格但还没有通过兼容测试的软件产品。合规测试不可作用于所有的规格。开发者可以注册他们的产品为实施草案或经核准的规范,而OGC有权审查和确认每个条目。

? WMS地图服务(OpenGIS Web Map Service),将地图数据发布为WEB服务,提供网络地图图片,有三个基本操作:

l GetCapabitities 返回服务级元数据,它是对服务信息内容和要求参数的一种描述;

l GetMap 返回一个地图影像,其地理空间参考和大小参数是明确定义了的;

l GetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息

? WMTS:访问已经切成瓦片分层的数据

? WFS要素服务(Web Feature Service)目的是提供对矢量地图的查询、编译等操作。

l GetCapabilites 返回Web要素服务性能描述文档(用XML描述);

l DescribeFeatureType 返回描述可以提供服务的任何要素结构的XML文档;

l GetFeature 一个获取要素实例的请求提供服务;

l Transaction 为事务请求提供服务;

l LockFeature 处理在一个事务期间对一个或多个要素类型实例上锁的请求。

? WCS地理覆盖服务(Web Coverage Service),目标是发布原始栅格数据。(栅格数据就是将空间分割成有规律的网格,每一个网格称为一个单元,并在各单元上赋予相应的属性值来表示实体的一种数据形式)

l GetCapabilities 操作返回描述服务和数据集的XML文档。

l n GetCoverage操作是在GetCapabilities确定什么样的查询可以执行、什么样的数据能够获取之后执行的,它使用通用的覆盖格式返回地理位置的值或属性。

l DescribeCoverageType 操作允许客户端请求由具体的WCS服务器提供的任一覆盖层的完全描述。

? GML: Geography Markup Language. 一种用于描述地理数据的XML。

三、搭建地图服务器(geoserver)

本人拙见:geoserver是一个开源的地图服务引擎,能够发布和管理地理空间数据(即图层数据),同时提供丰富的API服务,供用户进行地理空间数据的增删改查。

Geoserver内置Openlayers库(用于开发WebGIS客户端的JavaScript包,最初基于BSD许可发行,OpenLayers是一个开源的项目,其设计之意是为互联网客户端提供强大的地图展示功能,包括地图数据显示与相关操作,并具有灵活的扩展机制)。如果前端项目集成OpenLayers库,即可通过API调用方式,获取到Geoserver发布的地理空间数据。

官方定义:GeoServer是用Java编写的开放源代码软件服务器,允许用户共享和编辑地理空间数据。为实现互操作性而设计,它使用开放标准发布来自任何主要空间数据源的数据。

GeoServer允许您向世界显示您的空间信息。实施Web地图服务(WMS)标准,GeoServer可以创建各种输出格式的地图。一个免费的地图库OpenLayers已集成到GeoServer中,从而使地图生成快速简便。GeoServer基于GeoTools(一种开放源Java GIS工具包)构建。

除了精美的地图外,GeoServer还有更多功能。GeoServer符合Web Feature Service(WFS)标准和Web Coverage Service(WCS)标准,该标准允许共享和编辑用于生成地图的数据。GeoServer还使用Web Map Tile Service标准将发布的地图拆分为图块,以方便Web地图和移动应用程序使用。

GeoServer是一个模块化应用程序,通过扩展添加了附加功能。Web Processing Service扩展扩展了丰富的处理选项,您甚至可以编写自己的处理选项,使其他人可以将您的数据整合到他们的网站和应用程序中,从而释放您的数据并提高透明度。


(1)、安装包获取

方式1:官网下载geoserver安装包:http://geoserver.org/release/stable/


方式2:下载源码进行编译

java源码地址:https://github.com/geoserver/geoserver.git,编译出geoserver.war的安装包。



没有学过编程的同学,也可在此处下载官方安装包。



(2)、linux服务端部署


必备条件:linux安装jdk1.8以上,安装tomcat8.0以上,将tomcat包名修改成GisServer。



将打好的geoserver.war包放在tomcat/ webapps下



在geoserver/bin 目录下,执行./startup.sh启动地图服务。



将8080端口加入防火墙,同时在安全组中进行8080端口入规则放行。

然后浏览器访问:http://ip:8080/geoserver/web/ ,进入geoserver欢迎页

使用默认账号、密码登录(admin,admin)



(3)官方图层预览



本章简单介绍了,GIS服务相关概念、地图服务器geoserver搭建的全过程。感兴趣的朋友可以尝试下,如有问题,可以私信沟通。

下一节重点讲解:geoserver地图服务器的能力、GIS图层的开发、地图信息数据发布。敬请期待,谢谢大家~

相关推荐

Docker篇(二):Docker实战,命令解析

大家好,我是杰哥上周我们通过几个问题,让大家对于Docker有了一个全局的认识。然而,说跟练往往是两个概念。从学习的角度来说,理论知识的学习,往往只是第一步,只有经过实战,才能真正掌握一门技术所以,本...

docker学习笔记——安装和基本操作

今天学习了docker的基本知识,记录一下docker的安装步骤和基本命令(以CentOS7.x为例)一、安装docker的步骤:1.yuminstall-yyum-utils2.yum-con...

不可错过的Docker完整笔记(dockerhib)

简介一、Docker简介Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,...

扔掉运营商的 IPTV 机顶盒,全屋全设备畅看 IPTV!

其实现在看电视节目的需求确实大大降低了,折腾也只是为了单纯的让它实现,享受这个过程带来的快乐而已,哈哈!预期构想家里所有设备直接接入网络随时接收并播放IPTV直播(电信点播的节目不是太多,但好在非常稳...

第五节 Docker 入门实践:从 Hello World 到容器操作

一、Docker容器基础运行(一)单次命令执行通过dockerrun命令可以直接在容器中执行指定命令,这是体验Docker最快捷的方式:#在ubuntu:15.10容器中执行ech...

替代Docker build的Buildah简单介绍

Buildah是用于通过较低级别的coreutils接口构建OCI兼容镜像的工具。与Podman相似,Buildah不依赖于Docker或CRI-O之类的守护程序,并且不需要root特权。Builda...

Docker 命令大全(docker命令大全记录表)

容器生命周期管理run-创建并启动一个新的容器。start/stop/restart-这些命令主要用于启动、停止和重启容器。kill-立即终止一个或多个正在运行的容器rm-于删除一个或...

docker常用指令及安装rabbitMQ(docker安装rabbitmq配置环境)

一、docker常用指令启动docker:systemctlstartdocker停止docker:systemctlstopdocker重启docker:systemctlrestart...

使用Docker快速部署Storm环境(docker部署confluence)

Storm的部署虽然不是特别麻烦,但是在生产环境中,为了提高部署效率,方便管理维护,使用Docker来统一管理部署是一个不错的选择。下面是我开源的一个新的项目,一个配置好了storm与mono环境的D...

Docker Desktop安装使用指南:零基础教程

在之前的文章中,我多次提到使用Docker来安装各类软件,尤其是开源软件应用。鉴于不少读者对此有需求,我决定专门制作一期关于Docker安装与使用的详细教程。我主要以Macbook(Mac平台)为例进...

Linux如何成功地离线安装docker(linux离线安装httpd)

系统环境:Redhat7.2和Centos7.4实测成功近期因项目需要用docker,所以记录一些相关知识,由于生产环境是不能直接连接互联网,尝试在linux中离线安装docker。步骤1.下载...

Docker 类面试题(常见问题)(docker面试题目)

Docker常见问题汇总镜像相关1、如何批量清理临时镜像文件?可以使用sudodockerrmi$(sudodockerimages-q-fdanging=true)命令2、如何查看...

面试官:你知道Dubbo怎么优雅上下线的吗?你:优雅上下线是啥?

最近无论是校招还是社招,都进行的如火如荼,我也承担了很多的面试工作,在一次面试过程中,和候选人聊了一些关于Dubbo的知识。Dubbo是一个比较著名的RPC框架,很多人对于他的一些网络通信、通信协议、...

【Docker 新手入门指南】第五章:Hello Word

适合人群:完全零基础新手|学习目标:30分钟掌握Docker核心操作一、准备工作:先确认是否安装成功打开终端(Windows用户用PowerShell或GitBash),输入:docker--...

松勤软件测试:详解Docker,如何用portainer管理Docker容器

镜像管理搜索镜像dockersearch镜像名称拉取镜像dockerpullname[:tag]列出镜像dockerimages删除镜像dockerrmiimage名称或id删除...