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

WebGIS背景知识!

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

|概述

地理信息系统(Geographic information System 简称 GIS),是一种在计算机软硬件的支持下,对整个地球表层空间有关地理发布数据进行采集、存储、管理、运算、分析等等的技术系统。而网络地理信息系统(WebGIS)是传统GIS在网络上的延伸和扩展,具有传统GIS的特点,可以实现空间数据的检索、查询、绘图输出编辑等等。最近项目需要用到webGIS里面的一些功能,当然GIS是一门学科,掌握需要系统且深入的学习。因为在开发中需要用到一些webGIS技术,需要对一些概念和常用技术需要基本了解,所以我查了一些资料,写一篇笔记记录一下。

|OGC

Open Geospatial Consortium 开放地理信息联盟。是一个由530家企业、政府机构、研究组织、大学组成的国际性协会。致力于提供地理信息行业软件和数据服务的标准化工作,推动地理空间位置信息和服务的公平性、可查性、访问性、交互性、复用性。上面说的有些不明不白,简单来说OGC是指定GIS行业标准的组织,GIS行业从数据采集制作,到地图位置服务发布,都要遵循OGC定义和规范。

|WMS

WMS(web map service)网络地图服务。OGC里最常见的规范就是WMS规范——WMS为网络地图的数据格式、图例样式、地图发布、交互设计等等方面制定了一系列规范。

WMS = WMTS + WFS ; WMTS—— (web map tile service 地图瓦片服务); WFS ——(web feature service 网络要素服务)

地图瓦片服务:地图数据量很大所以无法直接传递到前端显示,且电脑显示器分辨率有限,因此地图瓦片服务的处理方式是先在后端生成栅格图片再讲图片传到前端展示。意思是说每次滚动鼠标滚轮放大缩小的时候后端都有发数据来。WMTS发布的是栅格图片,栅格内容无法被修改。

而WFS服务是矢量的,地图要素为feature;feature是一个可操作的对象,通过WFS可以对数据(几何+属性)进行增删改查等操作。

|瓦片与瓦片地图

跟上面的地图瓦片服务相关联,瓦片的意思是后端渲染的图片一块一块传送到前端,就好像盖房子一片片的瓦片一样。瓦片地图是一种地图解决方案,为了解决地图数据很大无法传送的问题。将一整块大地图进行切分,分成相同大小的地图,用户访问的时候再将小地图拼接在一起还原成大地图。

具体来说瓦片地图就是多个比例尺下配置地图,然后提前把每个比例尺下的地图绘制成小地图,保存在服务器上名为缓存的目录中。这样当客户端访问地图时可以直接获取需要的小块图片拼接成的地图,而不是由服务器动态创建出一幅地图再发送到客户端从而极大提高访问速度。如下图。

|LOD

levels of Detail (细节图层)

LOD技术根据物体模型的节点在显示环境中所处的位置和重要度。决定物体渲染的资源分配,降低非重要物体的面数和细节度从而获得高效率的渲染运算,LOD在电子游戏中经常运用,对于需要显示全球地图的GIS系统而言,更需要应用这项技术。


|坐标系与投影

为了表示地球上的某个点,还有点与点之间的关系——我们需要使用坐标系来表示。在WebGIS系统中,常见的坐标系有两种:一种wkid=102100(102113);一种wkid=4326102100:GCS_WGS_1984_web_mercator是在线网络地图常用的坐标系统,它是投影坐标系的一种。百度地图、高德地图和大多数ArcGIS提供的在线瓦片地图采用了这种投影方式。4326:GCS_WGS_1984是地理坐标系统的一种,一般GPS、遥感影像、专业测绘数据等都是采用的这种坐标系类型。

有了坐标系就来说说投影,我们经常看到EPSG:3857和EPSG:4326两种投影方式。EPSG:3857实际上是墨卡托投影。墨卡托投影的过程是将地球展开成一个圆柱,再将圆柱展开平面(如下图);对于墨卡托投影来说,越到高纬度,大小扭曲越严重,到两级会被无限放大,因此无法显示极地地区。对于EPSG:4326也叫经纬度投影,使用此坐标会导致页面变形。

|WKT WKB

WKT是一种文本标记语言——用于表示矢量几何对象、空间参照以及空间参照系统之间的转换。它用二进制表示且符合OGC规定。WKT与geojson分为点线面几何四种Point,LineString,Polygon,GeometryCollection。

WKB采用二进制存储点线面,解决WKT表达冗余的问题,便于传输和存储在数据库中。


|GeoJSON

GeoJson是一种基于JSON格式的地理空间数据交换格式,它定义了几种类型JSON对象以及它们组合在一起的方法,以表示地理要素、属性和它们空间范围的数据。几何对象包括有点(表示地理位置)、线(表示街道、公路、边界)、多边形(表示国家、省、领土)以及以上类型合成的复合几何图形。数据库postgreSQL+postGIS插件可以存储这种具有地理属性的数据。


|Geoserver

在计算领域,GeoServer是一个用Java编写的开源服务器,它允许用户共享、处理和编辑地理空间数据。为了互操作性而设计,它使用开源标准发布来自任何主要空间数据源的数据。

GeoServer已经发展成为一种将现有信息与Google地球、NASA World Wind等虚拟地球仪以及OpenLayers、Google地图和必应地图等基于网络的地图连接起来的简单方法。

GeoServer的功能是开放地理空间协会Web要素服务(WFS)标准的参考实现,同时也实现了Web地图服务(WMS)、Web覆盖服务(WCS)和Web地理信息处理服务(WPS)规范。

安装Geoserver除了通过二进制包安装外,还需要JDK1.8和Tomcat才能运行起来(因为GeoServer是Java写的)


|Openlayers

Openlayers是一个开源的Javascript库(基于修改过的BSD许可发布),用来在Web浏览器显示地图。它提供API接口创建类似于Google Maps和Bing Maps的基于web的地理应用。这个库包括Rico和Prototype框架。运行openlayers也比较简单(openlayers用js写的),下载好依赖的包之后npm start直接可以运行。访问1234端口能看到地图了。

|postgreSQL + postGIS

PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统;通过与postGIS配合能够存储地理信息。这里使用pgAdmin4作为postgreSQL的可视化界面。

相关推荐

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删除...