主要内容

显示世界地图

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

  • 获取一个地图贴图。

  • 获取地图名称。

  • 获取磁贴的格式。

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

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

p = matlab.wsdl.setWSDLToolPath;如果(isempty(p.JDK) || isempty(p.CXF))安装Java Development Kit (JDK)和Apache CXF程序。) disp (请参阅本示例末尾的setup WSDL Tools链接。其他的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。要与服务通信,调用service上的一个函数:[…]= FUNCTION(SERVICE,arg,…)函数列表请参见文档USGSImageryOnly_MapServer。

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

的必要输入,请阅读文档GetMapTile函数。

帮助GetMapTile
——help for USGSImageryOnly_MapServer/GetMapTile——GetMapTile Result = GetMapTile(obj,MapName,Level,Row,Column,Format)输入:obj - USGSImageryOnly_MapServer对象MapName - string Level -数字标量(XML int) Row -数字标量(XML int) Column -数字标量(XML int) Format - string输出:Result - 0-255的数字向量(XML base64Binary)参见USGSImageryOnly_MapServer。

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

请阅读提供映射名称的函数的文档。GetDefaultMapName

帮助GetDefaultMapName
——help for USGSImageryOnly_MapServer/GetDefaultMapName——GetDefaultMapName Result = GetDefaultMapName(obj)输入:obj - USGSImageryOnly_MapServer对象输出:Result - string参见USGSImageryOnly_MapServer。

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

请阅读提供映射格式信息的函数的文档。GetTileImageInfo

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

这个函数返回一个TileImageInfo对象。

的文档TileImageInfo通过单击显示到的帮助中的链接TileImageInfo

TileImageInfo(CacheTileFormat,CompressionQuality,Antialiasing) TileImageInfo对象,用于USGSImageryOnly_MapServer web客户端。CompressionQuality -数字标量(XML int)缓存图像压缩质量。抗锯齿- string参见USGSImageryOnly_MapServer。

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

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

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

将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)

相关的话题