OGC——WMS服务
一、引言
一直用arcgis javascript的二次开发,经常使用它的一些服务WMS、WMTS、WFS、MapService等,并没有深入了解这些服务内部机制,直到最近学习了geoserver,由于毕竟它是开源的要遵循行业老大OGC制定的标准,这样通用性比较强一些,所以发的服务基本都是WMS、WTMS、WFS、WCS==
so了解这些东西是必须的了,后悔当时没有跟遥感院第一美男老师好好学啊,现在开始看着还是懵逼状态,硬着头皮看完梳理了一下==
二、WMS服务发布
这里可以用geoserver发布,也可以用arcgisserver或者mapserver,由于我经常使用arcgis,这里用了arcgis server发布的。发布很简单==
这里只要比正常发布的时候多勾个选项就可以了。发布后的服务如下面右图:
三、WMS服务中的操作
WMS requests can perform the following operations:
3.1GetCapabilities(获取服务中的要素类及支持的操作)
3.1.1基本介绍
The GetCapabilities operation requests metadata about the operations, services, and data (“capabilities”) that are offered by a WMS server.
The parameters for the GetCapabilities operation are:
3.1.2举例介绍
请求方式:
这里主要就是三个参数,request就是WMS的操作方法,这里是GetCapabilities
请求结果:
这里看着比较复杂,一下子肯定看不懂,后面可以慢慢理解,这个内容很有用的==
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<WMS_Capabilities version="1.3.0" updateSequence="2014-05-30T16:26:00Z" xmlns="http://www.opengis.net/wms" xmlns:sld="http://www.opengis.net/sld" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ms="http://mapserver.gis.umn.edu/mapserver" xsi:schemaLocation="http://www.opengis.net/wms http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd http://mapserver.gis.umn.edu/mapserver https://worldwind25.arc.nasa.gov/wms?service=WMS&version=1.3.0&request=GetSchemaExtension">
<!-- MapServer version 7.0.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE -->
<Service>
<Name>WMS</Name>
<Title>World Wind Server</Title>
<Abstract>NASA WorldWind WMS Service that contains the following data: ...</Abstract>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/>
<ContactInformation>
<ContactPersonPrimary>
<ContactPerson>Randolph Kim</ContactPerson>
<ContactOrganization>NASA</ContactOrganization>
</ContactPersonPrimary>
<ContactPosition> </ContactPosition>
<ContactElectronicMailAddress>rkim@mail.arc.nasa.gov</ContactElectronicMailAddress>
</ContactInformation>
<MaxWidth>2048</MaxWidth>
<MaxHeight>2048</MaxHeight>
</Service>
<Capability>
<Request>
<GetCapabilities>
<Format>text/xml</Format>
<DCPType>
<HTTP>
<Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/></Get>
<Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/></Post>
</HTTP>
</DCPType>
</GetCapabilities>
<GetMap>
<Format>image/png</Format>
<Format>image/tiff</Format>
<Format>image/jp2k</Format>
<Format>image/jpeg</Format>
<Format>image/png; mode=8bit</Format>
<Format>application/x-pdf</Format>
<Format>image/svg+xml</Format>
<Format>application/vnd.google-earth.kml+xml</Format>
<Format>application/vnd.google-earth.kmz</Format>
<DCPType>
<HTTP>
<Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/></Get>
<Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/></Post>
</HTTP>
</DCPType>
</GetMap>
<GetFeatureInfo>
<Format>text/plain</Format>
<Format>application/vnd.ogc.gml</Format>
<DCPType>
<HTTP>
<Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/></Get>
<Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/></Post>
</HTTP>
</DCPType>
</GetFeatureInfo>
</Request>
<Exception>
<Format>XML</Format>
<Format>INIMAGE</Format>
<Format>BLANK</Format>
</Exception>
<Layer>
<Title>World Wind Server</Title>
<Abstract>NASA WorldWind WMS Service that contains the following data: ...</Abstract>
<CRS>EPSG:4326</CRS>
<CRS>EPSG:4269</CRS>
<CRS>EPSG:3857</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
<Layer queryable="0" opaque="1" cascaded="0">
<Name>BlueMarble-200401</Name>
<Title>BlueMarble January 2004</Title>
<Abstract>BlueMarble imagery for January 2004</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>BlueMarble-200402</Name>
<Title>BlueMarble February 2004</Title>
<Abstract>BlueMarble imagery for February 2004</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>BlueMarble-200403</Name>
<Title>BlueMarble March 2004</Title>
<Abstract>BlueMarble imagery for March 2004</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>BlueMarble-200404</Name>
<Title>BlueMarble April 2004</Title>
<Abstract>BlueMarble imagery for April 2004</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>BlueMarble-200405</Name>
<Title>BlueMarble May 2004</Title>
<Abstract>BlueMarble imagery for May 2004</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>BlueMarble-200406</Name>
<Title>BlueMarble June 2004</Title>
<Abstract>BlueMarble imagery for June 2004</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>BlueMarble-200407</Name>
<Title>BlueMarble July 2004</Title>
<Abstract>BlueMarble imagery for July 2004</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>BlueMarble-200408</Name>
<Title>BlueMarble August 2004</Title>
<Abstract>BlueMarble imagery for August 2004</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>BlueMarble-200409</Name>
<Title>BlueMarble September 2004</Title>
<Abstract>BlueMarble imagery for September 2004</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>BlueMarble-200410</Name>
<Title>BlueMarble October 2004</Title>
<Abstract>BlueMarble imagery for October 2004</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>BlueMarble-200411</Name>
<Title>BlueMarble November 2004</Title>
<Abstract>BlueMarble imagery for November 2004</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>BlueMarble-200412</Name>
<Title>BlueMarble December 2004</Title>
<Abstract>BlueMarble imagery for December 2004</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>esat</Name>
<Title>ESAT</Title>
<Abstract>I-Cubed ESAT World Landsat7 Mosaic</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-58</southBoundLatitude>
<northBoundLatitude>82</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-58" miny="-180" maxx="82" maxy="180" />
</Layer>
<Layer queryable="0" opaque="0" cascaded="0">
<Name>earthatnight</Name>
<Title>Earth_At_Night_2012</Title>
<Abstract>Earth At Night 2012</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-05-17T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
<Style>
<Name>default</Name>
<Title>default</Title>
<LegendURL width="59" height="20">
<Format>image/png</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://worldwind25.arc.nasa.gov/wms?version=1.3.0&service=WMS&request=GetLegendGraphic&sld_version=1.1.0&layer=earthatnight&format=image/png&STYLE=default"/>
</LegendURL>
</Style>
<MinScaleDenominator>2.67857e+06</MinScaleDenominator>
</Layer>
<Layer queryable="0" opaque="0" cascaded="0">
<Name>FAAchart</Name>
<Title>FAA navigation charts</Title>
<Abstract>FAA navigation charts</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-05-17T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-173.49</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>35.9465</southBoundLatitude>
<northBoundLatitude>72.3357</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="35.9465" miny="-173.49" maxx="72.3357" maxy="180" />
<Style>
<Name>default</Name>
<Title>default</Title>
<LegendURL width="58" height="20">
<Format>image/png</Format>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://worldwind25.arc.nasa.gov/wms?version=1.3.0&service=WMS&request=GetLegendGraphic&sld_version=1.1.0&layer=FAAchart&format=image/png&STYLE=default"/>
</LegendURL>
</Style>
</Layer>
<Layer queryable="0" opaque="1" cascaded="0">
<Name>scaletest</Name>
<Title>Scale test</Title>
<Abstract>Max and min scale test</Abstract>
<KeywordList>
<Keyword>LastUpdate= 2013-07-02T16:26:00Z</Keyword>
</KeywordList>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-180</westBoundLongitude>
<eastBoundLongitude>180</eastBoundLongitude>
<southBoundLatitude>-90</southBoundLatitude>
<northBoundLatitude>90</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="EPSG:4326"
minx="-90" miny="-180" maxx="90" maxy="180" />
<MinScaleDenominator>1.78571e+06</MinScaleDenominator>
</Layer>
</Layer>
</Capability>
</WMS_Capabilities>
3.2GetMap(获取地图)
3.2.1基本介绍
The GetMap operation requests that the server generate a map. The core parameters specify one or more layers and styles to appear on the map, a bounding box for the map extent, a target spatial reference system, and a width, height, and format for the output. The information needed to specify values for parameters such as layers, styles and srs can be obtained from the Capabilities document.
The response is a map image, or other map output artifact, depending on the format requested. GeoServer provides a wide variety of output formats, described in WMS output formats.
The standard parameters for the GetMap operation are:
3.2.2举例介绍
请求方式:
这里需要注意的是,layers名字要写正确,crs坐标系,bbox图片范围,height图片高像素,width图片宽像素,format这个就不用多说了吧。其实填充的这些参数你都可以在上面GetCapabilities 请求结果中找到==
请求结果(返回的影像区域为河南南阳和湖北襄阳交界的南阳盆地地区):
3.3GetFeatureInfo(根据地图上的像素点获取更详细的要素信息,类似Identify功能)
3.3.1基本介绍
The GetFeatureInfo operation requests the spatial and attribute data for the features at a given location on a map. It is similar to the WFS GetFeature operation, but less flexible in both input and output. Since GeoServer provides a WFS service we recommend using it instead of GetFeatureInfo whenever possible.
The one advantage of GetFeatureInfo is that the request uses an (x,y) pixel value from a returned WMS image. This is easier to use for a naive client that is not able to perform true geographic referencing.
The standard parameters for the GetFeatureInfo operation are:
3.3.2举例介绍
请求方式:http://localhost:6080/arcgis/services/tttt/tt/MapServer/WMSServer?VERSION=1.3.0&REQUEST=GetFeatureInfo&QUERY_LAYERS=0&BBOX=110,35,120,45&crs=4326&INFO_FORMAT=text/html&I=200&J=100&WIDTH=256&HEIGHT=256
这里需要注意的参数QUERY_LAYERS请求的图层,BBOX图片的范围,INFO_FORMAT返回数据格式,I图片的像素横坐标,J图片像素纵坐标,width与height同getmap函数一样。同理这里的参数都可以在GetCapabilities中查找到奥==
还有一点要注意的是version版本问题要注意对上,网上很多资料由于版本不一致导致不能使用,并不是写错了==
请求结果:
四、总结
- 学习WMS迫在眉睫;
- arcgis server发布WMS服务;
- WMS中的三种操作方法介绍与举例。
参考链接:
<?xml version='1.0' encoding="UTF-8" standalone="no" ?><WMS_Capabilities version="1.3.0" updateSequence="2014-05-30T16:26:00Z" xmlns="http://www.opengis.net/wms" xmlns:sld="http://www.opengis.net/sld" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ms="http://mapserver.gis.umn.edu/mapserver" xsi:schemaLocation="http://www.opengis.net/wms http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd http://mapserver.gis.umn.edu/mapserver https://worldwind25.arc.nasa.gov/wms?service=WMS&version=1.3.0&request=GetSchemaExtension">
<!-- MapServer version 7.0.0 OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=SVG_SYMBOLS SUPPORTS=RSVG SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE -->
<Service> <Name>WMS</Name> <Title>World Wind Server</Title> <Abstract>NASA WorldWind WMS Service that contains the following data: ...</Abstract> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/> <ContactInformation> <ContactPersonPrimary> <ContactPerson>Randolph Kim</ContactPerson> <ContactOrganization>NASA</ContactOrganization> </ContactPersonPrimary> <ContactPosition> </ContactPosition> <ContactElectronicMailAddress>rkim@mail.arc.nasa.gov</ContactElectronicMailAddress> </ContactInformation> <MaxWidth>2048</MaxWidth> <MaxHeight>2048</MaxHeight></Service>
<Capability> <Request> <GetCapabilities> <Format>text/xml</Format> <DCPType> <HTTP> <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/></Get> <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/></Post> </HTTP> </DCPType> </GetCapabilities> <GetMap> <Format>image/png</Format> <Format>image/tiff</Format> <Format>image/jp2k</Format> <Format>image/jpeg</Format> <Format>image/png; mode=8bit</Format> <Format>application/x-pdf</Format> <Format>image/svg+xml</Format> <Format>application/vnd.google-earth.kml+xml</Format> <Format>application/vnd.google-earth.kmz</Format> <DCPType> <HTTP> <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/></Get> <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/></Post> </HTTP> </DCPType> </GetMap> <GetFeatureInfo> <Format>text/plain</Format> <Format>application/vnd.ogc.gml</Format> <DCPType> <HTTP> <Get><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/></Get> <Post><OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://worldwind25.arc.nasa.gov/wms?"/></Post> </HTTP> </DCPType> </GetFeatureInfo> </Request> <Exception> <Format>XML</Format> <Format>INIMAGE</Format> <Format>BLANK</Format> </Exception> <Layer> <Title>World Wind Server</Title> <Abstract>NASA WorldWind WMS Service that contains the following data: ...</Abstract> <CRS>EPSG:4326</CRS> <CRS>EPSG:4269</CRS> <CRS>EPSG:3857</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> <Layer queryable="0" opaque="1" cascaded="0"> <Name>BlueMarble-200401</Name> <Title>BlueMarble January 2004</Title> <Abstract>BlueMarble imagery for January 2004</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>BlueMarble-200402</Name> <Title>BlueMarble February 2004</Title> <Abstract>BlueMarble imagery for February 2004</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>BlueMarble-200403</Name> <Title>BlueMarble March 2004</Title> <Abstract>BlueMarble imagery for March 2004</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>BlueMarble-200404</Name> <Title>BlueMarble April 2004</Title> <Abstract>BlueMarble imagery for April 2004</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>BlueMarble-200405</Name> <Title>BlueMarble May 2004</Title> <Abstract>BlueMarble imagery for May 2004</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>BlueMarble-200406</Name> <Title>BlueMarble June 2004</Title> <Abstract>BlueMarble imagery for June 2004</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>BlueMarble-200407</Name> <Title>BlueMarble July 2004</Title> <Abstract>BlueMarble imagery for July 2004</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>BlueMarble-200408</Name> <Title>BlueMarble August 2004</Title> <Abstract>BlueMarble imagery for August 2004</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>BlueMarble-200409</Name> <Title>BlueMarble September 2004</Title> <Abstract>BlueMarble imagery for September 2004</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>BlueMarble-200410</Name> <Title>BlueMarble October 2004</Title> <Abstract>BlueMarble imagery for October 2004</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>BlueMarble-200411</Name> <Title>BlueMarble November 2004</Title> <Abstract>BlueMarble imagery for November 2004</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>BlueMarble-200412</Name> <Title>BlueMarble December 2004</Title> <Abstract>BlueMarble imagery for December 2004</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>esat</Name> <Title>ESAT</Title> <Abstract>I-Cubed ESAT World Landsat7 Mosaic</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-12-12T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-58</southBoundLatitude> <northBoundLatitude>82</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-58" miny="-180" maxx="82" maxy="180" /> </Layer> <Layer queryable="0" opaque="0" cascaded="0"> <Name>earthatnight</Name> <Title>Earth_At_Night_2012</Title> <Abstract>Earth At Night 2012</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-05-17T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> <Style> <Name>default</Name> <Title>default</Title> <LegendURL width="59" height="20"> <Format>image/png</Format> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://worldwind25.arc.nasa.gov/wms?version=1.3.0&service=WMS&request=GetLegendGraphic&sld_version=1.1.0&layer=earthatnight&format=image/png&STYLE=default"/> </LegendURL> </Style> <MinScaleDenominator>2.67857e+06</MinScaleDenominator> </Layer> <Layer queryable="0" opaque="0" cascaded="0"> <Name>FAAchart</Name> <Title>FAA navigation charts</Title> <Abstract>FAA navigation charts</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-05-17T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-173.49</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>35.9465</southBoundLatitude> <northBoundLatitude>72.3357</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="35.9465" miny="-173.49" maxx="72.3357" maxy="180" /> <Style> <Name>default</Name> <Title>default</Title> <LegendURL width="58" height="20"> <Format>image/png</Format> <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="https://worldwind25.arc.nasa.gov/wms?version=1.3.0&service=WMS&request=GetLegendGraphic&sld_version=1.1.0&layer=FAAchart&format=image/png&STYLE=default"/> </LegendURL> </Style> </Layer> <Layer queryable="0" opaque="1" cascaded="0"> <Name>scaletest</Name> <Title>Scale test</Title> <Abstract>Max and min scale test</Abstract> <KeywordList> <Keyword>LastUpdate= 2013-07-02T16:26:00Z</Keyword> </KeywordList> <CRS>EPSG:4326</CRS> <EX_GeographicBoundingBox> <westBoundLongitude>-180</westBoundLongitude> <eastBoundLongitude>180</eastBoundLongitude> <southBoundLatitude>-90</southBoundLatitude> <northBoundLatitude>90</northBoundLatitude> </EX_GeographicBoundingBox> <BoundingBox CRS="EPSG:4326" minx="-90" miny="-180" maxx="90" maxy="180" /> <MinScaleDenominator>1.78571e+06</MinScaleDenominator> </Layer> </Layer></Capability></WMS_Capabilities>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理