欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

服务地图怎么做(服务地图功能的开发心得)

程序员文章站 2023-11-26 22:15:40
一、前言在2020年之前,从未接触过相关gis的开发技术,和大家一样,只是调用过百度地图、谷歌地图开放的api,实现地图的展示功能。对于gis的理解,只在效果上,从来不知道,地图是如何实现的。 202...

一、前言

在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搭建的全过程。感兴趣的朋友可以尝试下,如有问题,可以私信沟通。