主要内容

显示世界地图

此示例显示如何从美国地质调查局(USGS)国家地图SOAP服务器访问图像。

  • 得到一张地图。

  • 获取地图名称。

  • 获取瓷砖的格式。

此示例演示如何在USGS web服务中调用函数,USGSImageryOnly\u地图服务器,以获取此信息。

安装Java®JDK™ 还有阿帕奇™ CXF编程并设置刀具路径以运行此示例。

p=matlab.wsdl.setWSDLToolPath;如果(isempty(p.JDK)| | isempty(p.CXF))disp('安装Java开发工具包(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\u映射服务器\usgsimageronly\u MapServer.m.\+wsdl要使用usgsimageronly\u MapServer,必须运行javaaddpath('.\+wsdl\MapServer.jar')。ans=@USGSImageryOnly\u映射服务器

将jar文件添加到Java路径。

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

启动服务。

wsdl=usgsimageryonloy\u映射服务器;

探索服务。

帮助USGSImageryOnly\u地图服务器
USGSImageryOnly\u映射服务器连接到USGSImageryOnly\u映射服务器服务的客户端=USGSImageryOnly\u映射服务器连接到http://basemap.nationalmap.gov/arcgis/services/USGSImageryOnly/MapServer 并返回一个服务。若要与该服务通信,请调用该服务上的函数:[……]=函数(SERVICE,arg,…)有关函数列表,请参见文档USGSImageryOnly\U MapServer。

点击链接doc USGSImageryOnly\u地图服务器. MATLAB®打开的参考页USGSImageryOnly\u地图服务器在帮助浏览器中。

请阅读文档,了解所需的输入GetMapTile作用

帮助GetMapTile
---USGSImageryOnly\u MapServer/GetMapTile的帮助---GetMapTile结果=GetMapTile(obj,MapName,Level,Row,Column,Format)输入:obj-USGSImageryOnly\u MapServer对象MapName-字符串级别-数值标量(XML int)行-数值标量(XML int)列-数值标量(XML int)格式-字符串输出:结果-数字0-255的向量(XML base64Binary)另请参见USGSImageryOnly_MapServer。

你需要地图名,数量,一行,总体安排输入参数。

阅读提供映射名称的函数的文档,GetDefaultMapName.

帮助GetDefaultMapName
---USGSImageryOnly\u MapServer/GetDefaultMapName的帮助---GetDefaultMapName结果=GetDefaultMapName(obj)输入:obj-USGSImageryOnly\u MapServer对象输出:结果-字符串另请参见USGSImageryOnly\u MapServer。

此函数提供映射名称。

阅读提供地图格式信息的函数的文档,GetTileImageInfo.

帮助GetTileImageInfo
---USGSImageryOnly\u映射服务器/GetTileImageInfo---GetTileImageInfo结果=GetTileImageInfo(obj,映射名称)输入帮助:obj-USGSImageryOnly\u映射服务器对象映射名称-字符串输出:结果-TileImageInfo对象另请参见USGSImageryOnly\u映射服务器。

此函数返回一个TileImageInfo对象

请阅读文档以获取详细信息TileImageInfo对象,方法是单击帮助显示中的链接以TileImageInfo.

TileImageInfo(CacheImageFormat,CompressionQuality,Antialiasing)TileImageInfo对象用于USGSImageOnly_MapServer web客户端CacheTileFormat-字符串缓存磁贴格式。CompressionQuality-数值标量(XML int)缓存磁贴图像压缩质量。Antialiasing-字符串另请参阅USGSImageOnly_MapServer。

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

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

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

将JPEG编码的数据写入文件。使用伊姆雷德读取和解码JPEG数据并返回M-by-N-by-3uint8矩阵

分机=“.jpg”; tilename=[“USGSImageryOnly\u映射服务器”'0_0_0'ext];fid=fopen(tilename,“w”);fwrite(fid,jpeg)fclose(fid)

查看地图。

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

相关话题