地理信息网络服务
文章目录
第一章 概述
WebGIS的概念及系统架构
WebGIS是一种在Internet或Intranet环境下基于Http协议的用来存储、管理、发布和共享地理信息的B/S的分布式计算机应用系统。
WebGIS的系统架构:
WebGIS、InternetGIS、网络GIS的比较
WebGIS是基于HTTP协议的B/S模式的InternetGIS
InternetGIS是网络GIS的一个子集,是基于TCP/IP协议的网络GIS,这些GIS可以是C/S或B/S。
WebGIS的基本思想
WebGIS使得所有用户拥有使用分布式地理信息系统的能力,用户通过Web浏览器访问或共享由一个或多个GIS服务器发布的数据或功能,而不必购买专业GIS软件。
HTML(Hypertext Markup Language,超文本标记语言)
HTTP(Hypertext Transfer Protocol,超文本传输协议)
WebGIS的主要功能
- 地图服务
- 地理数据查询服务
- 导航或位置服务
- 个性化地图
- 地理信息的分发和传播
- 专题功能服务
WebGIS的优点
- 更广泛的访问范围
- 是一种大众化的GIS
- 可以大规模降低系统成本
- 平台独立性更强
- 更新具有统一性
- 应用广泛
平台独立性更强:
- 无论服务器/客户机是何种机器,无论WebGIS端使用何种GIS软件,由于使用了通用的Web浏览器,用户可以透明的访问WebGIS数据。
- 可以在本机或某个服务器上进行分布式部件的动态组合和空间数据的协同处理与分析,实现远程异构数据的共享
WebGIS主要产品
大众化的新一代WebGIS应用的共同特点
- 提供大众化和个性化的地图查询服务
- 地图服务的功能丰富:包括基本的地图浏览,查询定位,路径规划,用户标注,LBS和导航服务等。
- 采用基于Ajax的新一代的Web开发技术
- 服务端以地图切片的形式提供预先渲染好的地图瓦片服务
- 地图浏览采用分级缩放方式
- 可以进行二次开发
第二章 WebGIS 网络基础
TCP/IP
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)
广义指由多个与因特网相关的协议组成的TCP/IP参考模型。
包括四层:应用层、传输层、网络层、链路层
应用层常用协议:HTTP、FTP(文件传输)、SMTP(电子邮件)、Telnet、SSH(安全远程登录)、DNS(域名解析)
TCP/IP和ISO/OSI的模型对比关系
ISO/OSI七层模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
TCP/IP四层模型:应用层、传输层、网络层、链路层
传输层的协议、功能、用途
- 提供应用程序间的通信
- 传输层的协议主要有:TCP、UDP(User Datagram Protocol)用户数据报协议
指标 | TCP | UDP |
---|---|---|
是否连接 | 面向连接 | 无连接 |
传输可靠性 | 可靠 | 不可靠 |
速度 | 较慢 | 较快 |
传输质量 | 较高 | 较差 |
传输层的用途和功能:
分段和重组:将应用程序分割成若干段,既可保证所传输的大小符合传输介质的限制要求,也可以确保不同应用程序发出的数据能在介质中多路传输。
网络层的功能有哪些
负责相邻计算机间的通信,功能包括三方面:
- 处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
- 处理输入数据报,检查其合法性
DNS的概念作用
DNS(Domain Name System)域名系统,是应用层的协议,它提供域名到IP地址之间的解析服务。
HTTP协议的概念特点
HTTP(Hypertext Transfer Protocol)超文本传输协议,是一种详细规定了Web服务器和浏览器之间互相通信的规则,在Internet上传送Web文档的数据传送协议。
特点:
- 支持客户/服务器模式
- 简单快速,灵活
- 无连接,无状态协议
HTTP协议的请求响应过程:
- 四个阶段:连接,请求,响应,断开
HTTP请求和HTTP响应
HTTP请求:Web客户端向Web服务器发送信息,由三部分组成
- 请求行:请求方法+请求网址+HTTP版本
- HTTP头
- 内容
HTTP响应
当Web服务器收到HTTP请求后,会根据请求的信息做某些处理,相应的返回一个HTTP响应,由三部分组成:
状态行:HTTP版本+响应状态码+状态码描述
- 100-199 信息类
- 200-299 响应成功
- 300-399 重定向类
- 400-499 客户端错误类
- 500-599 服务器端错误类
HTTP头
返回内容
MIME Type:表示资源的媒体类型,内容标识,用来文件上传和下载时指定文件格式,被定义在Content-type header中。
Cookie的作用
因为HTTP是无状态协议,不对之前发生的请求进行状态管理,无法根据之前的状态进行本次的请求处理。
Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态,Cookie会根据从服务器端发送的响应报文内的Set-Cookie字段,在客户端中保存Cookie,下次请求时,携带Cookie,服务器端通过比对,得到之前的状态信息
第三章 WebGIS 前端开发技术
HTML标记、HTML元素及HTML属性概念区分
HTML文件由HTML标记、元素、及其属性构成。
CSS的概念、作用
样式表概念
CSS的优点:
- 表现和内容分类
- 增强网页表现能力
- 使网站风格趋于一致
使用样式表:
- 内联式样式表
- 嵌入式样式表
- 输入外部样式表 @import url(“…”)
- 链接外部样式表
CSS选择器
使某个样式应用于特定的HTML元素,首先要找到该元素
分类:
- 基本选择器
- 组合选择器
- 伪类选择器
- 伪元素
- 属性选择器
基本选择器包括:
- 标签选择器
- 类选择器
- id选择器
组合选择器包括:
- 后代选择器
- 子选择器 (>)
- 相邻兄弟选择器 (+)
- 分组选择器 (,)
伪类选择器:
a:link
a:visited
a:hover
a:active
CSS的两个基本特性:层叠和继承
Positon属性
position:
- static
- relative
- absolute
- fixed
DOM、BOM
DOM(Document Object Model)文档对象模型,当网页被加载时,浏览器会创建页面的文档对象模型。
浏览器每次加载和显示页面时,都在内存里创建页面及全部元素的一个内部表示体系,也就是DOM。通过DOM可以访问HTML中的所有元素
ES6时2015年ECMAScript的第六版,引入了很多特性
BOM(Browser Object Model)浏览器对象模型,
JSON
JSON(JavaScript Object Notation)JavaScript对象表示法,是一种轻量的数据交换格式,本质是字符串,使用JSON.parse()方法将JSON字符串转换为JS对象,使用JSON.stringify()将JS对象转换为JSON字符串
对象定义的方法:
使用构造函数定义对象:
使用prototype扩展和继承对象,对象的原型,原型链
AJAX
Asynchronous JavaScript and XML(异步的JS和XML)
AJAX可以与后台服务器进行通信,不需要执行页面刷新就能将结果显示到页面上,创造现代交互网页。
利用XMLHttpRequest对象,能够建立客户端与服务器之间的连接,发送Http请求而不需要加载相应的页面。
第四章 地图API
地图API
地图API是通过JavaScript语言将地图嵌入到网页,并提供进行地理处理,检索,分析的功能,支持二次开发,创建WebGIS应用程序。
常规的大众化地图API有:高德地图API,百度地图API,天地图
第五章 Web服务器端技术
Web服务器作用及常见服务器
Web服务器可以处理Web客户端的请求并返回相应响应,也可以放置网站文件,让全世界浏览,也可放置数据文件,让全世界下载
Apache、Nginx、IIS
NodeJS
浏览器中JS组成:ECMAScript,BOM,DOM,XHR等
JS解析引擎:
- Chrome V8
- Firefox OdinMonkey
- Safri JSCore
- 微软 Chakra
JS代码执行三个阶段:解析、编译、执行
NodeJS应用是哪几部分组成的:
- require指令,导入第三方模块和内置模块
- 创建服务器,监听请求
- 接收请求和响应请求,客户端使用浏览器发送请求,服务器接收请求返回响应数据
NodeJS模块分类:
- 内置模块
- 自定义模块
- 第三方模块
npm(NodePackageManager,npm)包管理工具
第六章 地理信息Web服务
地理信息Web服务
地理信息Web服务:是WebService技术在GIS领域的应用,是指使用数据和相关功能以完成基本地学任务的Internet应用程序
主要指处理地理空间信息的服务,包括数据服务和处理服务
SOA与WebService
SOA(Service-Oriented Architecture)面向服务架构
SOA是一种以服务为基本组件的架构模型,它通过规范化的接口契约将系统中不同功能的单元联系起来
SOA的特征:
- 可重用
- 明确定义的接口
- 松耦合
- 无状态的服务设计
- 基于开放标准
WebService的体系结构:
WebService在SOA的基础上,整合了可扩展标记语言,XML,简单对象访问协议SOAP、网络服务描述语言WSDL及通用描述发现和集成技术,形成一套切实可行的技术方案。
XML(Extensible Markup Language)可扩展标记语言
SOAP(Simple Object Access Protocol)简单对象访问协议
WSDL(Web Service Description Language)网络服务描述语言
UDDI(Universal Description ,Discovery and Integration)通用描述发现和集成
SOAP是一个严格定义的信息交换协议。
WSDL提供了一种用XML语言描述网络服务的方法,描述网络服务所提供的操作,所需要的参数类型,服务执行结果的类型及服务的访问地址信息。
OGC网络服务
OGC(Open Geospatial Consortium)开发地理空间联盟
OpenGIS(Open Geodata Interoperation Specification)开放的地理数据互操作规范
OGC致力于地理信息服务和数据的标准化工作
OpenGIS规范包括抽象规范和实现规范
由于地理信息数据的特殊性,通用Web服务难以支撑地理数据服务的实现,OGC和ISO建立了标准化的地理信息服务规范,即OGC-Web服务(OWS)
服务分为以下几类:
-
注册服务(CSW,Catalogue Service for the Web)网络地理数据编录服务
-
处理服务(WPS,Web Processing Service)网络地理信息处理服务
-
数据服务(WFS、WCS,Web Feature Service,Web Coverage Service)
Web要素服务,Web覆盖服务
-
描绘服务(WMS、WMTS,Web Map Service)Web地图服务
典型的处理服务:
- 坐标转换服务(Coordinate Transformation Service)
- 地理编码服务(Geocode Service)
- 网络地理信息处理服务(Web Processing Service)
SLD(Styled Layer Descriptor)图层样式描述
描述了要素到地图的映射,如常见的点、线、面的设置,根据某个属性域的值设置设置不同的显示效果。
第七章 开源WebGIS开发技术
开源软件概述
开源软件许可证可分为两类:宽松型,著作权型
宽松型:Apache,MIT,BSD等,允许衍生软件闭源
著作权型:GPL,LGPL
OpenLayers
OpenLayers的特征:
- 支持瓦片图层
- 支持矢量切片
- 支持矢量图层
- 支持OGC服务规范
- 运用前言技术
- 面向对象思想
- 易于定制和扩展
- 优秀的交互体验
OpenLayers的核心类是Map,Layer,Source,View
Openlayers工作原理
- Openlayers如何将空间数据抽象为类
- 如何解析各种空间数据源
- 如何渲染并在客户端表示
Openlayers的数据源分为三大类Image、Tile、Vector
以GML数据解析为例,实现原理为:
先通过接口调用得到GML的文本数据,然后通过ol.format.GML类的读写方法来解析这个文本数据,从而**读取矢量要素(Feature)及其几何对象(Geometry)**等,最后结合样式(Style)并通过相应的渲染器在客户端渲染出来。
Openlayers的地图是通过图层Layer组织渲染,且通过数据源Source设置具体的地图数据来源。
Openlayers中渲染功能有渲染器(Render相关类)实现,通过Map的Render属性设置渲染方式,然后根据渲染方式(Canvas/WebGL)与图层类型(Image、Tile、Vector)匹配渲染将图层数据渲染出来
Geoserver
是OpenGIS Web Service规范的J2EE实现,利用GeoServer可以方便发布地图数据,允许用户进行更新、删除、插入数据操作,通过GeoServer可以在用户之间快速共享空间地理信息。
矢量要素(Feature)及其几何对象(Geometry)**等,最后结合样式(Style)并通过相应的渲染器在客户端渲染出来。
[外链图片转存中…(img-qwCV67W1-1720970806533)]
Openlayers的地图是通过图层Layer组织渲染,且通过数据源Source设置具体的地图数据来源。
Openlayers中渲染功能有渲染器(Render相关类)实现,通过Map的Render属性设置渲染方式,然后根据渲染方式(Canvas/WebGL)与图层类型(Image、Tile、Vector)匹配渲染将图层数据渲染出来
[外链图片转存中…(img-ijod61GD-1720970806533)]
[外链图片转存中…(img-sFHUyWpB-1720970806533)]
Geoserver
是OpenGIS Web Service规范的J2EE实现,利用GeoServer可以方便发布地图数据,允许用户进行更新、删除、插入数据操作,通过GeoServer可以在用户之间快速共享空间地理信息。