wmsread
从服务器检索WMS映射
语法
描述
[
访问Internet,从Web地图服务(WMS)服务器呈现和检索光栅地图。的一个
,R
= wmsread(层
)ServerURL
的属性WMSLayer
对象,层
,表示服务器。如果层
有多个元素,然后服务器将每个后续层覆盖在基本(第一个)层之上,形成一个单独的图像。只有当所有层共享相同时,服务器才呈现多个层ServerURL
价值。
WMS服务器在输出中返回一个光栅图,可以是彩色图像,也可以是灰度图像一个
.第二个输出,R
,是一个栅格引用对象一个
到EPSG:4326地理坐标系.一排排的一个
与平行线对齐,在经度上采样均匀。的列也是如此一个
与子午线对齐,在纬度上采样均匀。
的地理界限一个
跨越的整个经纬度范围层
.的wmsread
函数选择的空间尺寸较大一个
以适应其更大的地理范围。较大的空间大小固定为512。换句话说,假设RGB输出,一个
是512 - n - 3
如果纬度范围超过经度范围和n - - 512 - 3
否则。在两种情况下N
< = 512。的wmsread
函数集N
到在纬度和经度上提供最接近相等单元格大小的可能近似值的整数值。的支持的全部范围金宝app层
.
[
使用input参数一个
,R
= wmsread(mapRequestURL
)mapRequestURL
定义对服务器的请求。的mapRequestURL
包含一个WMSserverURL
附加WMS参数。这些WMS参数包括BBOX
,GetMap
和EPSG: 4326
或CRS: 84
关键字。获得一个mapRequestURL
从的输出wmsread
,RequestURL
的属性WMSMapRequest
对象,或互联网搜索。
[
返回一个WMS一个
,R
,mapRequestURL
= wmsread(…)GetMap
请求字符向量中的URLmapRequestURL
.您可以插入mapRequestURL
进入浏览器向服务器发出请求,然后服务器返回栅格图。如果可以理解其mime类型,浏览器将打开返回的映射,或者将栅格映射保存到磁盘。
例子
来自NASA的读取和显示层
从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
对象
正在检索的层的信息,指定为WMSLayer
对象。
例子:[A,R] = wmsread(layers(1));
mapRequestURL
- - - - - -世界媒体峰会GetMap
请求URL
特征向量
世界媒体峰会GetMap
request URL,指定为字符向量。
例子:[A,R] = wmsread(mapURL);
数据类型:字符
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:[A,R] = wmsread(layers(1),'latlim',[40 - 50]);
latlim
- - - - - -以度为单位的输出图像的纬度限制
[]
(默认)|双元素向量
输出图像的纬度限制,以度为单位,指定为形式的两元向量[southern_limit northern_limit]
.极限值必须是升序的。默认情况下,“Latlim”
是空的,并且wmsread
在纬度上充分利用的范围层
.如果Layer.Details.Attributes.NoSubsets
是真正的
,“Latlim”
不可修改。
例子:[A,R] = wmsread(layers(1),'latlim',[40 - 50]);
数据类型:双
lonlim
- - - - - -输出图像的经度限制
[]
(默认)|双元素向量
输出图像的经度限制(以度为单位),在表单中指定为两元素向量[western_limit eastern_limit]
.极限值必须是升序的。默认情况下,“Lonlim”
在经度上是空的还是满的层
使用。如果Layer.Details.Attributes.NoSubsets
是真正的
,你不能修改“Lonlim”
例子:[A,R] = wmsread(layers(1),'lonlim',[40 - 50]);
数据类型:双
ImageHeight
- - - - - -栅格图的期望高度(像素)
标量,正数,整数值
栅格映射的期望高度(以像素为单位),指定为标量、正数、整数值。ImageHeight
不能超过8192
.如果layer.Details.Attributes.FixedHeight
包含正数,不能修改“ImageHeight”
.
例子:[A,R] = wmsread(图层(1),'ImageHeight',40);
数据类型:双
ImageWidth
- - - - - -所需的栅格映射宽度(以像素为单位)
标量,正数,整数值
栅格映射的期望宽度(以像素为单位),指定为标量、正整数。ImageWidth
不能超过8192
.如果Layer.Details.Attributes.FixedWidth
包含正数,不能修改“ImageWidth”
.
例子:[A,R] = wmsread(图层(1),'ImageWidth',100);
数据类型:双
CellSize
- - - - - -输出像素(光栅单元)的目标大小,单位为度
标量或二元向量
输出像素(栅格单元)的目标大小,以度为单位,指定为标量或两元素向量。如果指定标量,则该值同时应用于高度和宽度维度。如果指定一个向量,则使用该形式(高度宽度)
.的wmsread
函数如果同时指定两者,则会产生错误CellSize
而且ImageHeight
或ImageWidth
.输出栅格图的大小不能超过(8192、8192)
.
例子:[A,R] = wmsread(layers(1),'Cellsize',5);
数据类型:双
RelTolCellSize
- - - - - -相对容差“CellSize”
措施
(默认)|标量或二元向量
相对容差“CellSize”
,指定为标量或两元向量。如果指定标量,则该值同时应用于高度和宽度维度。如果指定一个向量,则公差将按顺序显示(高度宽度)
.
例子:[R] = wmsread(层(1)、“RelTolCellsize”[4 - 5]);
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
ImageFormat
- - - - - -将地图呈现为图像时使用的期望格式
中的第一个可用格式Layer.Details.ImageFormats
单元阵列(默认)|特征向量
将地图呈现为图像时使用的期望格式,指定为以下字符向量之一。类中的项的格式必须匹配Layer.Details.ImageFormats
单元阵列。如果未指定,格式默认为支持的格式列表中的第一个可用格式。金宝app
价值 | 描述 |
---|---|
“图像/ jpeg” |
JPEG |
“图像/ gif” |
GIF |
“图像/ png” |
PNG |
“图像/ tiff” |
TIFF |
“图像/ geotiff” |
GeoTIFF |
“图像/ geotiff8” |
GeoTIFF8 |
“图像/ tiff8” |
TIFF8 |
“图像/ png8” |
PNG8 |
“图像/比尔” |
波段行交错(BIL)格式。当您指定“图像/比尔” 格式,wmsread 返回一个 作为类类型为的二维数组int16 或int32 . |
例子:[R] = wmsread(层(1)、“ImageFormat”,“图像/ png”);
数据类型:字符
StyleName属性
- - - - - -在呈现图像时使用的样式
”
(默认)|特征向量|字符向量的单元格数组
渲染图像时使用的样式,指定为字符向量或字符向量的单元格数组。的StyleName属性
中的有效条目Layer.Details.Style.Name
字段。如果你要求多层,每一层都有不同的风格,那么StyleName属性
必须是字符向量的单元格数组。
例子:[A,R] = wmsread(layer(1),'StyleName','style');
数据类型:字符
|细胞
透明的
- - - - - -像素的透明度
假
(默认)|真正的
像素透明度,指定为一个逻辑值,真正的
或假
.当你设置透明的
来真正的
,像素透明度是启用的,这意味着所有不代表特征或数据值的像素都被设置为透明值。当你设置透明的
来假
,非数据像素设置为背景颜色的值。
例子:[A,R] = wmsread(layers(1),'Transparent',true);
数据类型:逻辑
写成BackgroundColor
- - - - - -用于地图背景(非数据)像素的颜色
[255255255]
(默认)|三元素向量
用于地图背景(非数据)像素的颜色,指定为三元素向量。
例子:[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日');
数据类型:双
|字符
SampleDimension
- - - - - -样品尺寸名称
字符向量的两元单元数组
维度的名称,指定为字符向量的两元素单元格数组,而不是“时间”
或“高度”
和它的字符向量值。层必须包含具有样本维范围的数据,该范围由“名字”
字段Layer.Details.Dimension
结构。的“名字”
字段必须包含的第一个元素的值“SampleDimension”
.的“程度”
字段Layer.Details.Dimension
的第二个元素的允许值范围“SampleDimension”
.
例子:[R] = wmsread(层(1)、“SampleDimension”{“样本”,“测试”});
数据类型:细胞
TimeoutInSeconds
- - - - - -发出服务器超时之前所经过的秒数
60(默认)|标量整数
在发出服务器超时之前所经过的秒数,指定为标量整数。如果将值设置为0
,wmsread
忽略超时机制。
例子:[A,R] = wmsread(layers(1),'TimeoutInSeconds',80);
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
输出参数
一个
-彩色或灰度图像
实,非稀疏,二维矩阵
彩色或灰度图像,返回为实的,非稀疏的,2-D矩阵。
R
-地理光栅参考对象
map.rasterref.GeographicCellsReference
对象
地理光栅引用对象,返回为map.rasterref.GeographicCellsReference
对象。光栅引用对象连接图像一个
转至EPSG:4326地理坐标系统。
mapRequestURL
——世界媒体峰会GetMap
请求URL
特征向量
世界媒体峰会GetMap
request 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
参数值,如果允许的话。
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。