主要内容

显示世界地图

这个示例展示了如何访问来自美国地质调查局(USGS)国家地图SOAP服务器的图像。要创建映射,您需要以下信息。

  • 获得一个地图贴图。

  • 获取地图名称。

  • 获取贴图的格式。

这个例子向你展示了如何在USGS web服务中调用函数,USGSImageryOnly_MapServer,以获取这些信息。

安装Java®JDK™和Apache™CXF程序,并设置工具路径来运行此示例。

p = matlab.wsdl.setWSDLToolPath;如果(p.JDK) || isempty(p.CXF))安装JDK和Apache CXF程序) disp (“请参阅本例末尾的设置WSDL工具链接。”其他的disp (的路径设置为:) matlab.wsdl.setWSDLToolPath结束

将当前文件夹更改为可写文件夹。

分配WSDL URL。

wsdlFile =...“http://basemap.nationalmap.gov/arcgis/services/USGSImageryOnly/MapServer?wsdl”

为客户机创建类文件。

matlab.wsdl.createWSDLClient (wsdlFile)
创建USGSImageryOnly_MapServer \ USGSImageryOnly_MapServer。m .\+wsdl要使用USGSImageryOnly_MapServer,必须运行javaaddpath('.\+wsdl\mapserver.jar')。ans = @USGSImageryOnly_MapServer

将jar文件添加到Java路径。

javaaddpath (“\ wsdl + \ mapserver.jar。”

启动服务。

wsdl = USGSImageryOnly_MapServer;

探索服务。

帮助USGSImageryOnly_MapServer
USGSImageryOnly_MapServer连接USGSImageryOnly_MapServer服务的客户端service = USGSImageryOnly_MapServer连接http://basemap.nationalmap.gov/arcgis/services/USGSImageryOnly/MapServer,返回service。要与服务通信,调用服务上的一个函数:[…]] =函数(服务、参数、…)有关函数列表,请参见USGSImageryOnly_MapServer文档。

点击链接医生USGSImageryOnly_MapServer.MATLAB®打开的参考页USGSImageryOnly_MapServer在帮助浏览器中。

请阅读文档以获得所需的输入GetMapTile函数。

帮助GetMapTile
——帮助USGSImageryOnly_MapServer / GetMapTile GetMapTile结果= GetMapTile (obj, MapName水平,行,列,格式)输入:obj - USGSImageryOnly_MapServer对象MapName -串级数字标量(XML int)行——数字标量(XML int)列-数字标量(XML int)格式字符串输出:Result - vector of numbers 0-255 (XML base64Binary)参见USGSImageryOnly_MapServer。

你需要MapName水平,格式输入参数。

请阅读文档以获取提供映射名称的函数,GetDefaultMapName

帮助GetDefaultMapName
——help for USGSImageryOnly_MapServer/GetDefaultMapName——GetDefaultMapName Result = GetDefaultMapName(obj) Inputs: obj - USGSImageryOnly_MapServer object Output: Result - string参见USGSImageryOnly_MapServer。

这个函数提供一个映射名称。

请阅读文档以获取提供地图格式信息的函数,GetTileImageInfo

帮助GetTileImageInfo
——help for USGSImageryOnly_MapServer/GetTileImageInfo——GetTileImageInfo Result = GetTileImageInfo(obj,MapName) Inputs: obj - USGSImageryOnly_MapServer对象MapName - string Output: Result - TileImageInfo对象参见USGSImageryOnly_MapServer。

这个函数返回TileImageInfo对象。

请阅读文档TileImageInfo对象,单击显示为的帮助中的链接TileImageInfo

TileImageInfo(CacheTileFormat,CompressionQuality,Antialiasing) TileImageInfo对象for use with USGSImageryOnly_MapServer web客户端。CompressionQuality—numeric scalar (XML int)缓存平铺图像压缩质量。反锯齿字符串参见USGSImageryOnly_MapServer。

MATLAB在帮助浏览器中打开一个文档。格式信息为CacheTileFormat

创建JPEG数据。下面的代码需要了解JPEG图像格式和USGS服务器使用的平铺方案。

获取默认映射名。defaultMapName = GetDefaultMapName (wsdl);%获取地图计数。数= GetMapCount (wsdl);%获取映射名称。只有一个地图(计数值),%,但索引是基于零的。mapName = GetMapName(wsdl, count-1);%获取关于贴图的信息。tileImageInfo = GetTileImageInfo(wsdl, mapName);%获取数据的格式。格式= tileImageInfo.CacheTileFormat;由于格式被指定为“混合”,这意味着GetMapTile的结果是一个jpeg编码的流。%地图瓷砖组织与最低的级别为%最低层次的细节和瓷砖使用%的从零开始的索引。水平= 0;行= 0;坳= 0;jpeg = GetMapTile (wsdl、mapName水平,行,坳,格式);

将jpeg编码的数据写入文件。使用imread读取并解码JPEG数据并返回一个m × n × 3uint8矩阵。

ext =“jpg”;tilename = [“USGSImageryOnly_MapServer”“0 _0_0”ext);fid = fopen (tilename,' w ');写入文件(fid, jpeg)文件关闭(fid)

查看地图。

tileImage = imread (tilename);图imshow (tileImage)

相关的话题