当前位置: 首页 > news >正文

万网可以花钱做网站/成人教育机构排行前十名

万网可以花钱做网站,成人教育机构排行前十名,传奇私服打广告网站咋做统计,化妆品备案查询入口文章目录 1.概述2.GetCapabilities3.GetMap4.GetFeatureInfo 阅读本文之前可参考前文:《地图服务器GeoServer的安装与配置》与《GeoServer发布地图服务(WMS、WFS)》。 1.概述 经过前文的介绍,相信我们对WMS/WFS服务已经有了一个非…

文章目录

  • 1.概述
  • 2.GetCapabilities
  • 3.GetMap
  • 4.GetFeatureInfo

阅读本文之前可参考前文:《地图服务器GeoServer的安装与配置》与《GeoServer发布地图服务(WMS、WFS)》。

1.概述

经过前文的介绍,相信我们对WMS/WFS服务已经有了一个非常直观的认识,最起码我们知道了地图服务的数据从何而来,又是如何发布出去的。更进一步的说,OGC给WMS/WFS分别定义了非常详尽的标准规范,其主要内容是通过HTTP(Hypertext Transfer Protocol,超文本传输协议 )实现的各种操作。在这里,我们要介绍的WMS支持标准HTTP的Get和Post请求,不过通常情况下基于GET方式(将参数以键值对的形式放置在URL中)进行服务请求较为方便。

HTTP协议用于客户端和服务器之间的通信,为了满足各种各样的通信需求,HTTP协议规定了多种不同的请求方法,其中Get和Post是最基础的两种。Get用于请求已被URI识别的资源,Post则用来传输实体的主体,两者的功能比较相近,但其实有着不小的区别。不过在本文中,我们将会主要看到这个区别:Get请求是将参数拼接到URL上进行参数传递的,而POST是将参数写入到请求正文中传递的;因此,Get请求有URL长度的限制,通常用于查询;Post请求则没有长度限制,通常用于增添、删除和修改。

根据《OpenGIS Web Map Server Implementation Specification》的1.3.0版本,WMS主要支持如下几种操作,如下表1所示所示:

【表1 WMS支持的操作】

操作必要性描述
GetCapabilities必要查询服务的元数据,包括支持的操作、参数、以及图层列表等
GetMap必要检查询指定区域和内容的地图图像
GetFeatureInfo可选查询地图上像素位置的基础数据,包括几何和属性值

2.GetCapabilities

GetCapabilities操作的目的是获取服务的元数据,主要包括WMS服务器提供的操作、请求参数等信息。GetCapabilities请求的参数如下表2所示:

【表2 WMS GetCapabilities请求参数】

请求参数必要性描述
VERSION=version可选请求的版本:值是1.1.0,1.1.1,1.3.0三者之一。
SERVICE=WMS必要服务的类型。
REQUEST=GetCapabilities必要请求操作的名称。
FORMAT=MIME_type可选服务元数据的格式。
UPDATESEQUENCE=string可选用于缓存控制的序列号或字符串。

根据表2所示的参数,我们在浏览器中输入如下地址:

http://localhost:8080/geoserver/ows?service=WMS&version=1.3.0&request=GetCapabilities

浏览器响应的结果如下图所示。可以看到返回的结果其实是一个XML文件,这个文件中描述的就是WMS服务具体的元数据信息。

3.GetMap

GetMap操作用于请求服务器生成地图并返回,这个操作也是WMS服务最主要的功能。不难想象,为了保证正确的输出结果,我们必须配置足够多的参数,比如地理范围,空间参考、输出宽高以及格式等。具体的请求参数如下表3所示:

【表3 WMS GetMap请求参数】

请求参数必要性描述
VERSION=1.3.0必要请求的版本。
REQUEST=GetMap必要请求操作的名称。
LAYERS=layer_list必要一个或多个地图图层列表,使用逗号分隔。
STYLES=style_list必要渲染样式列表,使用逗号分隔。
CRS=namespace:identifier必要坐标参考系统。
BBOX=minx,miny,maxx,maxy必要边界框包围盒(从左下到右上,使用CRS的单位)。
WIDTH=output_width必要地图图像的宽度。
HEIGHT=output_height必要地图图像的高度。
FORMAT=output_format必要地图的输出格式。
TRANSPARENT=TRUE|FALSE可选地图背景透明度(默认不透明)。
BGCOLOR=color_value可选背景颜色的十六进制红绿蓝颜色值(默认白色)。
EXCEPTIONS=exception_format可选WMS报告异常的格式(默认为XML)。
TIME=time可选图层需要的时间值。
ELEVATION=elevation可选图层需要的高程值。
Other sample dimension(s)可选其他维度的值,备用。

这些参数具体的参数值可以参考GetCapabilities操作返回的XML文件。例如,我们填充好所有的必要参数,在浏览器中输入如下地址来访问前文中配置好的矢量数据集:

http://localhost:8080/geoserver/wms?
VERSION=1.3.0
&REQUEST=GetMap
&LAYERS=test:multipolygons
&STYLES
&CRS=EPSG:4326
&BBOX=38.8920794,-77.0495419,38.9096339,-77.0199063
&WIDTH=768
&HEIGHT=454
&FORMAT=image/png

这时,浏览器就会返回一个PNG格式的图像地图文件,如下图所示。GetMap响应的地图图像大小、格式等并不是固定的,具体取决于请求的参数。如果我们对矢量和栅格足够熟悉的话,我们能大概猜出WMS服务返回地图文件大概的处理算法流程:

  1. 由于数据源是矢量数据,所以我们关键是矢量栅格化的算法。
  2. 根据传递的参数坐标参考系统CRS、地理范围BBox、宽WIDTH以及高HEIGHT足够帮助我们确定一个栅格数据集。
  3. 通过矢量栅格化算法对栅格数据集填充像素值,这中间涉及到图像的重采样操作。
  4. 最后将栅格数据集的文件流传输到浏览器端。

如果我们想访问前文中配置好的栅格数据集,URL请求参数大致相同,如下所示:

http://localhost:8080/geoserver/wms?
VERSION=1.3.0
&REQUEST=GetMap
&LAYERS=test:japan_tmo_2011057_geo
&STYLES
&CRS=EPSG:4326
&BBOX=23.034667983398435,120.15380860839844,52.990722641601565,153.88916014160156
&WIDTH=768
&HEIGHT=682
&FORMAT=image/png

此时,浏览器也会返回一张PNG格式的图像地图,如下图8.30所示:

有一点要注意的是在WMS另一个广泛使用的版本1.1.1中,边界框包围盒的参数BBOX的x、y坐标顺序是与1.3.0版本是相反的,WMS版本1.1.1的请求URL如下所示:

http://localhost:8080/geoserver/wms?
VERSION=1.1.1
&REQUEST=GetMap
&LAYERS=test:multipolygons
&STYLES
&CRS=EPSG:4326
&BBOX=-77.0495419,38.8920794,-77.0199063,38.9096339
&WIDTH=768
&HEIGHT=454
&FORMAT=image/png

这个问题与GDAL2.0升级3.0版本时地理坐标系相关参数x和y需要进行调换有点类似,经过查阅相关资料才知道,原因是要保证x和y的顺序要与坐标参考系定义的轴顺序保持一致。但是在笔者看来,这种设计多少有点破坏向下兼容的原则。

4.GetFeatureInfo

GetFeatureInfo是可选操作,用于查询地图上给定位置的空间和属性信息。这个操作有点类似于鼠标在数字地图上拾取一点,高亮显示该点位置的要素并显示该要素关联的属性。不难理解,由于WMS使用的HTTP协议是无状态的,所以GetFeatureInfo请求参数包含了GetMap请求的大部分参数(除VERSION和REQUEST之外的所有参数)。毕竟,要获取地图某一点的要素信息,就先得把地图给获取了。GetFeatureInfo操作的标准请求参数如下表4所示:

【表4 WMS GetFeatureInfo请求参数】

请求参数必要性描述
VERSION=1.3.0必要请求的版本。
REQUEST=GetFeatureInfo必要请求操作的名称。
map request part必要GetMap请求的大部分参数。
QUERY_LAYERS=layer_list必要要查询的层级列表,以逗号分隔。
INFO_FORMAT=output_format必要特征信息返回格式(MIME类型)。
FEATURE_COUNT=number可选返回的特征数目 (默认为1)。
I=pixel_column必要x方向像素坐标。
J=pixel_row必要y方向像素坐标。
EXCEPTIONS=exception_format可选WMS 报告异常的格式(默认为XML)。

我们按照表4所示的参数来查询前文中配置好的基于矢量数据集的地图,具体在某个像素位置的要素信息,可以在浏览器中输入如下地址:

http://localhost:8080/geoserver/wms?
VERSION=1.3.0
&REQUEST=GetFeatureInfo
&LAYERS=test:multipolygons
&STYLES
&CRS=EPSG:4326
&BBOX=38.8920794,-77.0495419,38.9096339,-77.0199063
&WIDTH=768
&HEIGHT=454
&FORMAT=image/png
&QUERY_LAYERS=test:multipolygons
&INFO_FORMAT=application/json
&I=384
&J=227

此时,浏览器会返回一个JSON,描述了该像素位置的几何信息,其关联的属性信息,以及一些元数据信息。如下图所示:

同样的,如果使用类似的参数来查询前文中配置好的基于栅格数据集的地图,在浏览器中输入如下地址:

http://localhost:8080/geoserver/wms?
VERSION=1.3.0
&REQUEST=GetFeatureInfo
&LAYERS=test:japan_tmo_2011057_geo
&STYLES
&CRS=EPSG:4326
&BBOX=23.034667983398435,120.15380860839844,52.990722641601565,153.88916014160156
&WIDTH=768
&HEIGHT=682
&FORMAT=image/png
&QUERY_LAYERS=test:japan_tmo_2011057_geo
&INFO_FORMAT=application/json
&I=384
&J=341

此时,浏览器会返回一个JSON,不过内容就简单多了,返回的是该地图在指定像素位置的包含RGB三个波段的像素值。如下图所示。这其实也不难理解,如果把栅格数据当作是点要素的集合,那么点的像素值自然就是其关联的属性数据了。

相关文章:

网络地图服务(WMS)详解

文章目录 1.概述2.GetCapabilities3.GetMap4.GetFeatureInfo 阅读本文之前可参考前文:《地图服务器GeoServer的安装与配置》与《GeoServer发布地图服务(WMS、WFS)》。 1.概述 经过前文的介绍,相信我们对WMS/WFS服务已经有了一个非…...

【排序篇3】快速排序、归并排序

目录 一、快速排序1.1 递归1.2 非递归 二、归并排序2.1 递归2.2 非递归 一、快速排序 1.1 递归 快速排序的递归采用二叉树的前序遍历的思路,单趟排序先确定好一个元素的位置,然后往后递归再确定其他子区域内的某个元素的位置,直到只有一个元…...

Python中的@property

在 Python 中,property 是一种装饰器,用于将一个方法转换成只读属性。通过使用 property 装饰器,你可以定义一个类的方法,使其在访问时可以像访问属性一样,而不是通过方法调用。 下面是一个简单的例子来说明 property …...

二叉树基础oj练习(单值二叉树、相同的树、二叉树的前序遍历)

讲了这么多数据结构相关的知识(可以看我的数据结构文章专栏): 抓紧刷题巩固一下了 目录 1.单值二叉树 题目描述 思路1 代码1 思路2 代码2 2.相同的树 题目描述 思路 代码 3.二叉树的前序遍历 代码 思路 1.单值二叉树 965. 单值二叉树 - 力扣(LeetCod…...

自动化创建ETX用户帐号

在芯片设计行业,ETX是常见的远程访问环境。用户在通过ETX访问远程环境前必须首先加入ETX系统,然后通过profile分配相关的环境的访问权限。 通常这些操作在ETX WEB页面手工操作,如果我们期望实现用户帐号注册全自动化,就需要将以上…...

Android 实现集合去重的方法

方法一&#xff1a;使用HashSet 将集合转换为HashSet。 Set<String> set new HashSet<>(list);将HashSet转换回List。 List<String> uniqueList new ArrayList<>(set);方法二&#xff1a;使用Java 8的Stream API 将列表转换为Stream。 Stream&l…...

【Vue3】2-12 : 【案例】搜索关键词加筛选条件的综合

本书目录&#xff1a;点击进入 一、【案例】搜索关键词加筛选条件的综合 1.1、逻辑 1.2、效果 1.3、json数据 - 02-data.json 1.4、代码 一、【案例】搜索关键词加筛选条件的综合 1.1、逻辑 计算属性 - 绑定list&#xff0c;并过滤 input 双向绑定 - 当input改变时&…...

unity小程序websocket:nginx配置https (wss)转http (ws)及其他问题解决

目录 前言 实际运用场景 处理流程如下 nginx配置ssl和wss 配置过程中遇到的问题 1、无法连接服务器 2、通过IP可以访问&#xff0c;域名却不行 问题描述 解决 3、如何判断该域名是否备案了 前言 为了服务器网络的通用性&#xff0c;我们在实现移动端的游戏转微信小程序…...

MySql数据库对接Orcal数据库,需要考虑的前提问题

1.主表 从表的表关系&#xff1b;主键id 的关联问题&#xff1b; 2.字段类型的一致性问题&#xff08;备注&#xff1a;像varchar类型的一点要谨防数据过长抛错&#xff09;&#xff1b; 3.实体类字段两表一致性问题&#xff1b; 4.入表不为空问题&#xff0c;判空尽量在实体…...

K8S的存储卷---数据卷

容器内的目录和宿主机的目录进行挂载 容器在系统上的生命周期是短暂的。delete&#xff0c;K8S用控制器创建的pod&#xff0c;delete相当于重启&#xff0c;容器的状态也会恢复到初始状态。一旦回到初始状态&#xff0c;所有的后天编辑的文件都会消失 容器和节点之间创建一个…...

【量化交易故事】小明开启了量化创业之旅-01

故事开始于2023年的春天&#xff0c;小明是一位对金融市场充满热情的IT工程师。在经历了数次基于主观判断和个人情绪进行投资却收获平平后&#xff0c;他意识到传统交易方式中的人为因素难以避免&#xff0c;而这往往成为影响投资决策稳定性和准确性的关键障碍。在一次偶然的机…...

ffmpeg写YUV420文件碰到阶梯型横线或者条纹状画面的原因和解决办法

版权声明&#xff1a;本文为CSDN博主「文三~」的原创文章&#xff0c;遵循CC 4.0 BY-SA版权协议&#xff0c;转载请附上原文出处链接及本声明。 原文链接&#xff1a;https://blog.csdn.net/asdasfdgdhh/article/details/112831581 看到了&#xff0c;转载&#xff0c;留着备份…...

案例:新闻数据加载

文章目录 介绍相关概念相关权限约束与限制完整示例 代码结构解读构建主界面数据请求下拉刷新总结 介绍 本篇Codelab是基于ArkTS的声明式开发范式实现的样例&#xff0c;主要介绍了数据请求和touch事件的使用。包含以下功能&#xff1a; 数据请求。列表下拉刷新。列表上拉加载…...

数学的雨伞下:理解世界的乐趣

这本书没有一个公式&#xff0c;却讲透了数学的本质&#xff01; 《数学的雨伞下&#xff1a;理解世界的乐趣》。一本足以刷新观念的好书&#xff0c;从超市到对数再到相对论&#xff0c;娓娓道来。对于思维空间也给出了一个更容易理解的角度。 作者&#xff1a;米卡埃尔•洛奈…...

补充 vue3用户管理权限(路由控制)

之前有人问我 &#xff0c;如果是二级路由如何添加&#xff0c;这里我做一个补充吧。直接拿方法去用就行。也不做解释了。稍微看下就能看懂了 假设&#xff0c;后端返回给我们一个数据 [“/defa”,"/defa/defa1"] 这样的一个路由表&#xff0c;我们就需要通过这个路…...

C++ 深度优先搜索DFS || 模版题:排列数字

给定一个整数 n &#xff0c;将数字 1∼n 排成一排&#xff0c;将会有很多种排列方法。 现在&#xff0c;请你按照字典序将所有的排列方法输出。 输入格式 共一行&#xff0c;包含一个整数 n 。 输出格式 按字典序输出所有排列方案&#xff0c;每个方案占一行。 数据范围 1…...

计算机找不到msvcp120.dll如何解决?总结五个可靠的教程

在计算机使用过程中&#xff0c;遇到“找不到msvcp120.dll”这一问题常常令人困扰。msvcp120.dll作为Windows系统中至关重要的动态链接库文件&#xff0c;对于许多应用程序的正常运行起着不可或缺的作用。那么&#xff0c;究竟是什么原因导致找不到msvcp120.dll呢&#xff1f;又…...

法线变换矩阵的推导

背景 在冯氏光照模型中&#xff0c;其中的漫反射项需要我们对法向量和光线做点乘计算。 从顶点着色器中读入的法向量数据处于模型空间&#xff0c;我们需要将法向量转换到世界空间&#xff0c;然后在世界空间中让法向量和光线做运算。这里便有一个问题&#xff0c;如何将法线…...

React.Children.map 和 js 的 map 有什么区别?

JavaScript 中的 map 不会对为 null 或者 undefined 的数据进行处理&#xff0c;而 React.Children.map 中的 map 可以处理 React.Children 为 null 或者 undefined 的情况。 React 空节点&#xff1a;可以由null、undefined、false、true创建 import React from reactexport …...

13.Kubernetes部署Go应用完整流程:从Dockerfile到Ingress发布完整流程

本文以一个简单的Go应用Demo来演示Kubernetes应用部署的完整流程 1、Dockerfile多阶段构建 Dockerfile多阶段构建 [root@docker github]# git clone https://gitee.com/yxydde/http-dump.git [root@docker github]# cd http-dump/ [root@docker http-dump]# cat Dockerfile …...

叉车车载终端定制_基于MT6762安卓核心板的车载终端设备方案

叉车车载终端是一款专为叉车车载场景设计的4英寸Android车载平板电脑。它采用了高能低耗的8核ARM架构处理器和交互开放的Android 12操作系统&#xff0c;算力表现强大。此外&#xff0c;该产品还具备丰富的Wi-Fi-5、4G LTE和蓝牙等通讯功能&#xff0c;可选配外部车载蘑菇天线&…...

【CSS】保持元素宽高比

保持元素的宽高比&#xff0c;在视频或图片展示类页面是一个重要功能。 本文介绍其常规的实现方法。 实现效果 当浏览器视口发生变化时&#xff0c;元素的尺寸随之变化&#xff0c;且宽高比不变。 代码实现 我们用最简单的元素结构来演示&#xff0c;实现宽高比为4&#xf…...

使用 Docker 和 Diffusers 快速上手 Stable Video Diffusion 图生视频大模型

本篇文章聊聊&#xff0c;如何快速上手 Stable Video Diffusion (SVD) 图生视频大模型。 写在前面 月底计划在机器之心的“AI技术论坛”做关于使用开源模型 “Stable Diffusion 模型” 做有趣视频的实战分享。 因为会议分享时间有限&#xff0c;和之前一样&#xff0c;比较简…...

C++ namespace高级用法

高级用法 C++中的命名空间(namespace)是一种用于组织代码的机制,它可以帮助避免命名冲突,并使代码更加清晰和易于维护。以下是C++命名空间的一些高级用法: 嵌套命名空间:命名空间可以嵌套在其他命名空间中,形成一个层次结构。嵌套命名空间可以进一步细化命名空间,使其更…...

如何允许远程访问 MySQL

前些天发现了一个人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;最重要的屌图甚多&#xff0c;忍不住分享一下给大家。点击跳转到网站。 如何允许远程访问 MySQL 现在许多网站和应用程序一开始的 Web 服务器和数据库后端都托管在同一台计算机上。随着…...

PostgreSQL认证考试PGCA、PGCE、PGCM

PostgreSQL认证考试PGCA、PGCE、PGCM 【重点&#xff01;重点&#xff01;重点&#xff01;】PGCA、PGCE、PGCM 直通车快速下正&#xff0c;省心省力&#xff0c;每2个月一次考试 PGCE考试通知 &#xff08;2024&#xff09; 一、考试概览 &#xff08;一&#xff09; 报名要…...

Matlab深度学习进行波形分割(二)

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 &#x1f510;#### 防伪水印——左手の明天 ####&#x1f510; &#x1f497; 大家…...

Markdown高级用法——mermaid

Markdown高级用法——mermaid 起初是写文章&#xff0c;其中有时序图流程图等一般是processOn或者draw.io画截图粘过去的&#xff0c;工作中又是腾讯文档&#xff0c;上面也能画图&#xff0c;但假如我笔记软件用语雀之类的又要把一张图反复粘贴&#xff0c;浪费内存&#xff…...

cf919Div2C题题目总结

Problem - C - Codeforces 这道题其实是一道数学题。 先看第一个变量&#xff0c;也就是我们要求的答案k的数量&#xff0c;但看k是很好确定它的限制条件的&#xff0c;要想均匀分成k份&#xff0c;n%k必须为0&#xff0c;有了k&#xff0c;我们再来看m&#xff0c;对于a(1)和…...

Pandas实战100例 | 案例 4: 数据选择和索引 - 选择特定的列和行

案例 4: 数据选择和索引 - 选择特定的列和行 知识点讲解 在 Pandas 中&#xff0c;选择数据是一个非常常见的操作。你可以选择特定的列或行&#xff0c;或者基于某些条件筛选数据。 示例代码 选择特定的列 # 选择单列 selected_column df[ColumnName]# 选择多列 selected…...