主要内容

wmsread

从服务器检索WMS映射

描述

例子

一个R= wmsread(访问Internet,从Web地图服务(WMS)服务器呈现和检索光栅地图。的ServerURL的属性WMSLayer对象,,表示服务器。如果有多个元素,然后服务器将每个后续层覆盖在基本(第一个)层之上,形成一个单独的图像。只有当所有层共享相同时,服务器才呈现多个层ServerURL价值。

WMS服务器在输出中返回一个光栅图,可以是彩色图像,也可以是灰度图像一个.第二个输出,R,是一个栅格引用对象一个EPSG:4326地理坐标系.一排排的一个与平行线对齐,在经度上采样均匀。的列也是如此一个与子午线对齐,在纬度上采样均匀。

的地理界限一个跨越的整个经纬度范围.的wmsread函数选择的空间尺寸较大一个以适应其更大的地理范围。较大的空间大小固定为512。换句话说,假设RGB输出,一个512 - n - 3如果纬度范围超过经度范围和n - - 512 - 3否则。在两种情况下N< = 512。的wmsread函数集N到在纬度和经度上提供最接近相等单元格大小的可能近似值的整数值。的支持的全部范围金宝app

一个R= wmsread(名称,值,……)指定用于修改对服务器的请求的参数-值对。参数名可以缩写,不区分大小写。

一个R= wmsread(mapRequestURL使用input参数mapRequestURL定义对服务器的请求。的mapRequestURL包含一个WMSserverURL附加WMS参数。这些WMS参数包括BBOXGetMapEPSG: 4326CRS: 84关键字。获得一个mapRequestURL从的输出wmsread,RequestURL的属性WMSMapRequest对象,或互联网搜索。

一个RmapRequestURL= wmsread(…)返回一个WMSGetMap请求字符向量中的URLmapRequestURL.您可以插入mapRequestURL进入浏览器向服务器发出请求,然后服务器返回栅格图。如果可以理解其mime类型,浏览器将打开返回的映射,或者将栅格映射保存到磁盘。

例子

全部折叠

从NASA地球观测(NEO)服务器获取图层列表。通过指定搜索字符串为,搜索包含Blue Marble: Next Generation的层“bluemarbleng”

Neoinfo = wmsinfo(“https://neo.gsfc.nasa.gov/wms/wms”);neo = neoinfo.Layer;图层=细化(neo,“bluemarbleng”...“searchfield”“layername”...“MatchType”“准确”);

读取第一层并在地图上显示它。

[A,R] = wmsread(layer(1));axesm全球geoshow(右)标题(“蓝色星球”

使用USGS国家地图无缝服务器读取并显示加利福尼亚州旧金山金门大桥北段的正射影像。

首先,指定金门大桥的经纬度限制。

拉特林= [37.78 37.84];Lonlim = [-122.53 -122.40];

然后,通过从服务器读取功能文档,找到USGS高分辨率正射影层。服务器可能很忙,所以尝试多次连接。

numberOfAttempts = 5;尝试= 0;Info = [];serverURL =“http://basemap.nationalmap.gov/ArcGIS/services/USGSImageryOnly/MapServer/WMSServer?”(isempty(信息)试一试信息= wmsinfo(serverURL);orthoLayer = info.Layer(1);E尝试=尝试+ 1;如果throw(e);其他的流('试图连接到服务器:\n"%s"\n'serverURL)结束结束结束

从服务器检索映射,并在UTM投影中显示它。

imageLength = 1024;[A,R] = wmsread(orthoLayer,“Latlim”latlim,...“Lonlim”lonlim,...“ImageHeight”imageLength,...“ImageWidth”, imageLength);axesm (“设备”...“区域”utmzone (latlim lonlim),...“MapLatlimit”latlim,...“MapLonlimit”lonlim,...“大地水准面”, wgs84Ellipsoid) geoshow(A,R)轴标题({“旧金山”“金门大桥北段”})

读取并显示基于Aqua卫星上的AMSR-E传感器数据的全球每月海面温度综合数据。

首先,在WMS数据库中搜索包含单词“coastwatch”的图层。优化搜索,从AMSR-E传感器中找到地层。

海岸警戒= wmsfind(“coastwatch”“SearchField”“serverurl”);层=细化(海岸观察,“erdAAsstamday”“Searchfield”“serverurl”);

读取并显示2010年4月16日海面温度的合成数据。包括海岸线、地表层和国家层。

时间=2010 - 04 - 16 t00:00:00z;[A,R] = wmsread(layers(end:-1:1),“时间”、时间);axesm (“pcarree”“Maplonlimit”, [0, 360],...“PLabelLocation”45岁的...“MLabelLocation”, 90,...“MLabelParallel”, -90,...“MeridianLabel”“上”...“ParallelLabel”“上”);geoshow(右);标题({层(结束).LayerTitle时间})

wmsread函数可以设置可选参数,如图像高度、图像宽度和背景颜色。对于本例,通过指定图像分辨率和背景颜色自定义地图。

在WMS数据库中搜索包含地形在名字上。从决策支持和管理信息系统(Demis)服务器中选择该层。金宝app默认的背景色定义了海洋,是白色的。

拓扑层= wmsfind(“地形”);Topolayer = refine(拓扑层,“黛米* worldmap”“searchfield”“serverurl”);Topolayer = Topolayer (1);

通过指定红色、绿色和蓝色级别来定义背景颜色。指定单元格大小为0.5度。

oceanColor = [0 170 255];cellSize = 0.5;

读地图。使用名称-值参数指定背景颜色和分辨率。

[A,R] = wmsread(拓扑分子层,“写成BackgroundColor”oceanColor,...“CellSize”, cellSize);

显示地图并添加标题。

worldmap世界geoshow(右)标题(“地形”

输入参数

全部折叠

正在检索的层的信息,指定为WMSLayer对象。

例子:[A,R] = wmsread(layers(1));

世界媒体峰会GetMaprequest URL,指定为字符向量。

例子:[A,R] = wmsread(mapURL);

数据类型:字符

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:[A,R] = wmsread(layers(1),'latlim',[40 - 50]);

输出图像的纬度限制,以度为单位,指定为形式的两元向量[southern_limit northern_limit].极限值必须是升序的。默认情况下,“Latlim”是空的,并且wmsread在纬度上充分利用的范围.如果Layer.Details.Attributes.NoSubsets真正的“Latlim”不可修改。

例子:[A,R] = wmsread(layers(1),'latlim',[40 - 50]);

数据类型:

输出图像的经度限制(以度为单位),在表单中指定为两元素向量[western_limit eastern_limit].极限值必须是升序的。默认情况下,“Lonlim”在经度上是空的还是满的使用。如果Layer.Details.Attributes.NoSubsets真正的,你不能修改“Lonlim”

例子:[A,R] = wmsread(layers(1),'lonlim',[40 - 50]);

数据类型:

栅格映射的期望高度(以像素为单位),指定为标量、正数、整数值。ImageHeight不能超过8192.如果layer.Details.Attributes.FixedHeight包含正数,不能修改“ImageHeight”

例子:[A,R] = wmsread(图层(1),'ImageHeight',40);

数据类型:

栅格映射的期望宽度(以像素为单位),指定为标量、正整数。ImageWidth不能超过8192.如果Layer.Details.Attributes.FixedWidth包含正数,不能修改“ImageWidth”

例子:[A,R] = wmsread(图层(1),'ImageWidth',100);

数据类型:

输出像素(栅格单元)的目标大小,以度为单位,指定为标量或两元素向量。如果指定标量,则该值同时应用于高度和宽度维度。如果指定一个向量,则使用该形式(高度宽度).的wmsread函数如果同时指定两者,则会产生错误CellSize而且ImageHeightImageWidth.输出栅格图的大小不能超过(8192、8192)

例子:[A,R] = wmsread(layers(1),'Cellsize',5);

数据类型:

相对容差“CellSize”,指定为标量或两元向量。如果指定标量,则该值同时应用于高度和宽度维度。如果指定一个向量,则公差将按顺序显示(高度宽度)

例子:[R] = wmsread(层(1)、“RelTolCellsize”[4 - 5]);

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

将地图呈现为图像时使用的期望格式,指定为以下字符向量之一。类中的项的格式必须匹配Layer.Details.ImageFormats单元阵列。如果未指定,格式默认为支持的格式列表中的第一个可用格式。金宝app

价值 描述
“图像/ jpeg” JPEG
“图像/ gif” GIF
“图像/ png” PNG
“图像/ tiff” TIFF
“图像/ geotiff” GeoTIFF
“图像/ geotiff8” GeoTIFF8
“图像/ tiff8” TIFF8
“图像/ png8” PNG8
“图像/比尔” 波段行交错(BIL)格式。当您指定“图像/比尔”格式,wmsread返回一个作为类类型为的二维数组int16int32

例子:[R] = wmsread(层(1)、“ImageFormat”,“图像/ png”);

数据类型:字符

渲染图像时使用的样式,指定为字符向量或字符向量的单元格数组。的StyleName属性中的有效条目Layer.Details.Style.Name字段。如果你要求多层,每一层都有不同的风格,那么StyleName属性必须是字符向量的单元格数组。

例子:[A,R] = wmsread(layer(1),'StyleName','style');

数据类型:字符|细胞

像素透明度,指定为一个逻辑值,真正的.当你设置透明的真正的,像素透明度是启用的,这意味着所有不代表特征或数据值的像素都被设置为透明值。当你设置透明的,非数据像素设置为背景颜色的值。

例子:[A,R] = wmsread(layers(1),'Transparent',true);

数据类型:逻辑

用于地图背景(非数据)像素的颜色,指定为三元素向量。

例子:[R] = wmsread(层(1)、“写成BackgroundColor”[0,0255]);

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

所请求地图的期望仰角范围,指定为字符向量。层必须包含标高数据,该数据由“名字”字段Layer.Details.Dimension结构。的“名字”字段必须包含该值“高度”.的“程度”字段Layer.Details.Dimension结构确定参数的允许值范围。

例子:[A,R] = wmsread(layer(1),'Elevation','test');

数据类型:字符

所请求映射的期望时间范围,指定为字符向量或数字日期号。层必须包含具有时间范围的数据,该范围由“名字”字段Layer.Details.Dimension结构。的“名字”字段必须包含该值“时间”.的“程度”字段Layer.Details.Dimension结构确定参数的允许值范围。有关设置此参数的详细信息,请参见WMSMapRequest。时间属性参考页。

例子:[A,R] = wmsread(layer(1),'时间',' 2015年6月15日');

数据类型:|字符

维度的名称,指定为字符向量的两元素单元格数组,而不是“时间”“高度”和它的字符向量值。层必须包含具有样本维范围的数据,该范围由“名字”字段Layer.Details.Dimension结构。的“名字”字段必须包含的第一个元素的值“SampleDimension”.的“程度”字段Layer.Details.Dimension的第二个元素的允许值范围“SampleDimension”

例子:[R] = wmsread(层(1)、“SampleDimension”{“样本”,“测试”});

数据类型:细胞

在发出服务器超时之前所经过的秒数,指定为标量整数。如果将值设置为0wmsread忽略超时机制。

例子:[A,R] = wmsread(layers(1),'TimeoutInSeconds',80);

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出参数

全部折叠

彩色或灰度图像,返回为实的,非稀疏的,2-D矩阵。

地理光栅引用对象,返回为map.rasterref.GeographicCellsReference对象。光栅引用对象连接图像一个转至EPSG:4326地理坐标系统。

世界媒体峰会GetMaprequest URL,作为字符向量返回。

更多关于

全部折叠

4326坐标参考系统

EPSG:4326坐标参考系统是以WGS84(1984年世界大地测量系统)为基准的。纬度和经度是用度数表示的,经度是参照格林威治子午线的。

提示

  • 建立一个互联网连接使用wmsread.WMS服务器会周期性不可用。检索地图可能需要几分钟。wmsread类与服务器通信WebMapServer表示WMS服务器的对象。对象充当WMS服务器的代理,物理驻留在客户端。对象从服务器检索映射。如果没有与服务器建立连接,对象将在60秒后自动超时。

  • 若要指定连接Internet的代理服务器,请选择文件>首选项>网络并输入您的代理信息。如果您有防火墙,请使用此特性。

  • wmsread金宝app支持WMS 1.0.0、1.1.1和1.3.0版本的读取数据。仅对于版本1.3.0,WMS规范声明:“EPSG:4326指的是WGS 84地理纬度,然后是经度。也就是说,在这个CRS中x-axis对应纬度,而y-轴到经度。”大多数服务器以这种方式提供数据;但是,有些服务器符合版本1.1.1,其中x-axis对应经度,而y-轴到纬度。

    wmsread尝试验证服务器是否符合规范。它检查EPSG:4326边界框,如果XLim值超出纬度范围,则交换坐标轴以符合版本1.1.1而不是1.3.0。如果wmsread没有检测到XLim值超出了纬度范围,并且注意到纬度和经度限制颠倒了,然后需要交换它们。您可以修改bbox参数mapRequestURL或修改Latlim而且Lonlim参数值,如果允许的话。

版本历史

R2006a之前介绍