geoserver自定义插件_GIS篇 GeoServer个人笔记
1.1WMS
1.1.1WMS地图服务(OpenGIS Web Map Service),将地图数据发布为WEB服务,提供网络地图图片。
1.1.2WMTS,访问已经切成瓦片分层的数据
1.2WFS要素服务(Web Feature Service)目的是提供对矢量地图的查询、编译等操作。
("矢量地图":使用直线和曲线来描述图形)
1.3WCS地理覆盖服务(Web Coverage Service),目标是发布原始栅格数据。
("栅格数据":就是将空间分割成有规律的网格,每一个网格称为一个单元,并在各单元上赋予相应的属性值来表示实体的一种数据形式)
1.4只浏览,不需做编辑、查询、分析的图层,比如行政区划、河流、道路图层,切片较好, 切片后显示效率高,不切片的话每次加载或图像范围发生变化都需要重新渲染地图;
1.5WMS请求规范
1.5.1GetCapabitities(返回服务级元数据)服务名服务关键字类信息,对WMS服务请求参数以及输出格式的描述,图层layer(格式为namespace:layer)的列表等
service 服务名 WMS
version 服务版本 1.0.0,1.1.0,1.1.1,1.3.0选一
request 请求名 GetCapabitities
1.5.2GetMap(获取影像)
service 服务名 WMS
version 服务版本 1.0.0,1.1.0,1.1.1,1.3.0选一
request 请求名 GetCapabitities
layers 图层名
styles 请求的风格文件名 不填使用服务端默认
srs 坐标系,常用EPSG:4326
bbox 请求的map的边界的大小
width map输出宽像素大小
height map输出高像素大小
format map图片输出格式
1.5.3GetFeatureInfo 用于以多种格式(如 HTML、XML 和纯文本)文件形式返回地图中所查询要素的属性。
1.6WFS请求规范
1.6.1GetCapabilities操作 返回描述 WFS 服务元数据的XML文档, 服务元数据描述了该 WFS服务可以提供的地理要素类型以及针对每个要素类型的操作;
1.6.2DescribeFeatureType操作 返回WFS能够提供的地理要素类型的GML应用模式描述文档;
1.6.3GetFeature操作 根据用户查询条件,从WFS中获取地理要素,用户可以设定空间和非空间查询条件;
1.6.4Transaction 操作 为事务请求提供服务。用于描述地理数据变化的操作方法, 如创建、 修改和删除地理要素的操作;
1.6.5LockFeature操作 WFS可以在一个事务处理期间锁定一个地理要素类型中的一个或多个地理要素实例, 这使 WFS具有支持可序列化事务的能力;
1.6.6GetGmlObject 操作 一个 WFS 服务可能通过追踪Xlinks 来获取客户请求所需的构成地理要素的子要素实例。
1.7WCS请求规范
1.7.1GetCapabilities操作返回描述服务和数据集的XML文档。
1.7.2GetCoverage操作是在GetCapabilities确定什么样的查询可以执行、什么样的数据能够获取之后执行的,它使用通用的覆盖格式返回地理位置的值或属性。
1.7.3DescribeCoverageType操作允许客户端请求由具体的WCS服务器提供的任一覆盖层的完全描述。
动态出图可以使用WMS中的GetMap请求。
矢量查询可以使用WFS中的GetFeature请求。
要素编辑可以使用WFS中的Transaction请求。
2.管理平台
2.1管理平台数据部分
2.1.1工作区
工作区类似我们工作空间,概念可以类比我们进行其他开发时所配置的项目根目录,用于对某一项具体的工作进行统一的管理。对应于GeoServer所用于的web服务,也可以理解为是一个web网站的根目录。
2.1.2数据存储
数据存储用于管理GeoServer的数据存储,我们可以将其理解为为Web服务提供数据支持的“数据库”。
2.1.2.2数据配置
(1)设置数据表的字符集时应该和源数据一致,如果不知道源数据的字符集,考虑选择UTF-8
(2)本机SRS是指地图数据本身的坐标参考系统,这是由地图数据本身的属性决定的,也是不可修改的。GeoServer会自动从数据文件中读取这一信息。
相对应的Native Bounding Box则是根据本机SRS自动计算出来的边框,我们点击从数据中计算就能计算出来边框范围。
定义SRS是指我们自己想要定义显示地图数据的坐标参考系统。强制申明会让自定义SRS覆盖本机SRS。
对于国内用户来说,常用的坐标系统可以通过键入4326进行查找选择。选择确定后,通过点击“compute from nativ bounds”可以计算出在这个坐标系统下的边界。
2.1.2.3发布配置
(1)
http缓存响应头 - 如果勾选,GeoServer将不会在指定的缓存时间内请求相同tile。
(2)
Queryable - 控制图层是否可以通过WMS GetFeatureInfo请求进行查询。
(3)
Default style - 当用户没有在GetMap请求中指定样式时使用的默认样式。
Selected Styles - 用户可在GetMap中选择的样式
(4)
Default rendering buffer - GetMap / GetFeatureInfo请求中的默认缓冲大小。
2.1.3图层和图层组
图层和图层组都是用来发布和管理新图层,并可以使用组的形式来进行组织和管理。
2.1.4styles
styles是数据显示的样式,在图层发布指定默认以及可用样式
2.2管理平台服务部分
2.2.1WCS用于管理元数据信息和WCS、WFS、WMS通用的配置信息,如数据请求读写最大值等。
2.2.2WFS用于配置和管理Feature Data、服务级别以及GML输出等。
2.2.3WMS用于管理和配置栅格数据和SVG选项以及切片地图压缩和分级情况。
2.3管理平台tile cache部分
2.3.1在tilte layers中选择Seed,裁剪瓦片的级别后,在Geoserver的根目录的\geoserver\data\gwc\中会保存瓦片数据,如果没有数据,尝试将\geoserver\WEB-INF\web.xml中GEOSERVER_DATA_DIR的参数设为\geoserver\data的全路径数据目录,一般非安装版的geoserver可能出现此问题。
GEOSERVER_DATA_DIR
D:\tomcat\apache-tomcat-8.0.23\webapps\geoserver\data
2.3.2在gridset中添加各缩放等级的分片策略
(关于缓存:Geowebcache服务器拦截来至客户端的请求,判断本次请求的数据是否已经被缓存。如果请求数据已被缓存,则将这些缓存图片直接渲染至客户端;如果请求数据没有被缓存,则发送请求至WMS Server(提供网络地图服务的服务器如geoserver),由服务器处理请求数据,并返回给Geowebcache服务器,Geowebcache服务器进过渲染及缓存数据图片后绘制到客户端。)
5.style编写部分
5.1一些简单标记的意义,详细内容请参考sld规范文档
样式名称
要素样式
规则
过滤器
用来定义在两个属性值之间的过滤器
用来定义在小于某个属性值的过滤器
用来定义在大于某个属性值的过滤器
属性字段名
属性值
点标记器
线标记器
面标记器
5.2 style文件中包含中文应该把xml encoding改为"GB2312",否则会出现问题
6.geoserver的默认为不允许跨域访问。在geoserver项目目录的web.xml中添加(在其他filter之前)
CorsFilter
org.apache.catalina.filters.CorsFilter
CorsFilter
/*
7.geoserver发布tif高程数据
7.1数据源预处理: 需要先将16位的tiff转换为8位tiff
7.2下载Cesium1.4.4
7.3使用Cesiume 加载GeoserverTerrainProviderkai开源插件
var terrainProvider = new Cesium.GeoserverTerrainProvider({
heightMapWidth: 65, //其他值可能出现地形变形
heightMapHeight: 65, //其他值可能出现地形变形
url: 'http://127.0.0.1:8080/geoserver/map/wms', //wms服s务地址
layerName: 'ASTGTM2_N30E100_dem', //图层
maxLevel: 20,//最大切片等级
formatImage: {format : "image/png",extension: "png"}, //建议png,使用jpeg会压缩图片导致出现地形异常
styleName: 'generic', //使用通常的栅格数据风格
waterMask: false, //是否加载水纹数据
});
8.geoserver切割tif瓦片
使用geoserver自带的切片工具会导致瓦片之间会错位
需要使用geotiles工具,在layer Preview界面以png格式打开tif图层,复制url到geotiles中进行切割
将切割的瓦片放入"gwc/图层名/"文件夹下
9.其他
使用 gdal将tif切成小块tif
安装python3.6
python -m pip install wheel
下载GDAL-2.2.4-cp36-cp36m-win_amd64.whl
python -m pip install 路径\GDAL-2.2.4-cp36-cp36m-win_amd64.whl
gdal_retile.py -v -r bilinear -levels 4 -ps 256 256 -co "TILED=YES" -co "COMPRESS=JPEG" -targetDir E:\data\tiles E:\data\map\World1.tif
11.GeoWebServer目录命名规则
第一层:x x为级数
第二层:x_y x范围为 0 到 2的第一层级级数加一除以2取整的次方再减一,y相同
第三层:x_y x范围为 2的第一层级级数除以2取整加1的次方乘以第二层x 到 2的第一层级数除以2取整加2的次方乘以第二层x,y相同
第二层是一层索引,第三层存放的是实际瓦片
12.geoserver影像发布
支持geotiff,geojpg,geopng,geobmp,img,mbtiles等格式影像的发布
geotiff有单独的数据源支持
数据源WorldImager支持所有geo格式图片发布,图片和描述图片坐标系和相对地理位置的配置文件在同一个文件夹下,这个图片就是满足geo格式的图片,使用地图软件导出的geo格式图片需要检查配置文件是否正确
还可以通过安装插件支持例如img,mbtiles等格式的影像发布
13.关于mbtiles
mbtils格式文件原理:利用一个嵌入式类型数据库sqlite数据表里字段来存储图片的byte,使用时通过查询数据表就可以读取图片
mbtils资料:优点是大大减少存储量,缺点是大量的查询会拖慢服务器,较适合离线地图使用。
geoserver使用水经注生成的mbtiles导入时会报错
几乎没有案例,但是官方有导入导出mbtiles的python工具
14.MBtiles格式转换
python setup.py install安装mbutil
使用mbutil将瓦片目录转换为.mbtiles格式文件(geoserver不支持jpg格式瓦片转换的mbtiles,检测瓦片的文件头是否为png,后戳为png文件头也可能为jpg)
生成mbtiles文件后发布即访问
geoserver自定义插件_GIS篇 GeoServer个人笔记相关推荐
- phonegap(cordova) 自定义插件代码篇(三)----支付宝支付工具整合
建议读者,先阅读官方文档,知晓其支付流程之后再来使用此代码,比如客户需要做什么,服务端需要做什么(很重要!很重要!很重要!),因为这几个篇幅都是纯代码篇,因为阅读前面的入门篇之后看这些应该毫无问题才对 ...
- kong笔记——自定义插件 目录及部署
kong笔记 目录导航 简述 本文目标: 了解kong插件的基本信息 手动部署自定义插件 注意:本文不涉及自定义插件的开发,仅仅说明自定义插件的目录结构与部署方式 目录结构 基本插件模块 两个必须的文 ...
- android插件做动态权限,Mui本地打包笔记(四)Android自定义插件的配置(以动态申请权限为例)...
通过自定义插件方式实现Android平台的动态申请权限功能 在上一章中完成了在Mui中调用Android原生的动态权限请求功能(Android动态申请权限的问题).虽然说完成了功能,但是在使用上并不是 ...
- 《nodejs+gulp+webpack基础实战篇》课程笔记(四)-- 实战演练
一.用gulp 构建前端页面(1)---静态构建 npm install gulp-template --save-dev 通过这个插件,我们可以像写后台模板(譬如PHP)一样写前端页面.我们首先学习 ...
- Cordova学习--iOS自定义插件
上一篇文章中我们已经成功创建了一个App,在这一篇中,我们实现自定义原生插件,由js调用原生插件.在这里我们实现功能如下 一.创建插件文件 在plugins文件夹下创建插件EchoPlugin,继承自 ...
- Cordova应用的JavaScript代码和自定义插件代码的调试
我之前写过三篇Cordova相关的技术文章.当我们使用Cordova将自己开发的前端应用打包安装到手机上后,可能会遇到需要调试Cordova应用的时候. 本文就介绍Cordova应用的调试步骤. 如果 ...
- vue自定义插件 封装一个类似 element 中 message 消息提示框的插件
vue自定义插件 封装一个类似 element 中 message 消息提示框的插件 一.资源文档 1.vue内置组件 transition 2.Vue.use() 3.Vue.extend() 4. ...
- 《nodejs+gulp+webpack基础实战篇》课程笔记(六)--附加课
一.多页面分离资源引用,按需引用JS和css 我们前面实现了以下功能:1.新建了一个login模版(用到htmlWebpackPlugin).2.分别把main.js和login.js.reg.js分 ...
- APISIX Ingress 如何支持自定义插件
Ingress 和 Ingress controller Kubernetes 中的 Ingress 是一种资源对象,用于定义如何从 Kubernetes 集群外访问到 Kubernetes 集群内的 ...
最新文章
- Mysql中对table的操作问题
- 【剑指offer-Java版】29数组中出现次数超过一半的数字
- Android Studio 更新失败解决方法
- 动态规划 dp03 最长公共子串问题 c代码
- matlab相关论文,matlab
- 理想的互联网服务后台框架的九个要点
- Hive 外部表关联分区数据
- Linux 常用C函数说明-文件权限控制篇
- 运动会计算机系,秋季运动会计算机系总结计划 (12页)-原创力文档
- Android 开机自启动
- cvSobel() 梯度和Sobel导数
- 乐优商城(17)--评论服务
- CnOpenData中国工业企业股东信息数据
- RTX2012概述-1
- hdu1847-Good Luck in CET-4 Everybody! (博弈论 SG函数 找规律)
- 怎么将计算机恢复到前一天的状况,excel表格恢复前一天数据-我想将excel表格中的两组数据做对比(数据是每天变......
- 在移动硬盘安装操作系统
- linux替换变量字符串,linux shell 替换字符串的几种方法,变量替换${},sed,awk
- BCD码与十六进制值转换
- 计算机应用技术基础考试分值,计算机一级ms分值