服务接口配置了在服务接口层支持的按不同服务规范发布成的网络服务,比如 REST 服务、WMS 服务、WFS 服务、WMTS 服务、WCS 服务、WPS 服务、OGC API 服务以及用户自定义类型的服务等。可以通过修改服务配置文件中的服务接口配置文件 iserver-services-interfaces.xml(参见iServer 配置文件说明)来修改服务中使用的接口。服务接口的配置是在<interface>节点中进行的,不同类型的服务接口有不同的配置项。关于不同类型接口配置的详细参数介绍,请参考通过服务管理器配置服务接口。
接口配置文件结构
<interface>的 name 属性标识了该服务接口,它是必选参数,通过它可以访问具体类型的服务,请参见服务的 URI 设置。
<interface>节点在配置文件中的结构如下所示:
<application> ... <interfaces> ... <interface> ... <interface/> </interfaces> </application>
不同服务接口的类型通过定义类来区别,配置信息通过配置类来定义,详见表1_服务接口的实现与配置。
基本类型 | 版本 | 服务接口实现类 | 服务接口配置类 |
REST REST/JSR ArcGIS REST1 Baidu REST1 Google REST1 OSMRestServlet1 TMSRestServlet1 | -- | com.supermap.services.rest.RestServlet com.supermap.services.rest.JaxrsServletForJersey com.supermap.services.rest.AGSRestServlet com.supermap.services.rest.BaiduRestServlet com.supermap.services.rest.GoogleRestServlet com.supermap.services.rest.OSMRestServlet com.supermap.services.rest.TMSRestServlet | com.supermap.services.rest.RestConfig com.supermap.services.rest.JaxrsConfigForJersey com.supermap.services.rest.AGSRestConfig |
WMS | 1.1.1 1.3.0 | com.supermap.services.wms.WMSServlet | com.supermap.services.wms.WMSConfig |
WFS | 1.0.0 2.0.0 | com.supermap.services.wfs.WFSServlet | com.supermap.services.wfs.WFSConfig |
WCS | 1.1.1 1.1.2 | com.supermap.services.wcs.WCSServlet | com.supermap.services.wcs.WCSConfig |
WMTS | 1.0.0 | com.supermap.services.wmts.WMTSServlet | com.supermap.services.wmts.WMTSConfig |
WPS | 1.0.0 | com.supermap.services.wps.WPSServlet | com.supermap.services.wps.WPSConfig |
OGC API | 1.0 | com.supermap.services.ogcapi.OGCAPIServlet | com.supermap.services.ogcapi.OGCAPIConfig |
注1:iServer高级版,iEdge提供该接口。
配置 REST 接口
SuperMap iServer 提供了基于 Restlet 和 Jersey 的两种 REST 接口,分别对应两个接口实现类 RestServlet 和 JaxrsServletForJersey。
配置一个基于 Restlet 的 REST 接口如下所示:
<interface class="com.supermap.services.rest.RestServlet" name="rest"> <config class="com.supermap.services.rest.RestConfig"> <accessControlAllowOrigin></accessControlAllowOrigin> </config> </interface>
其中,<interface>节点的 class 属性标识接口类型,对应实现类 RestServlet ,<config>节点是该 REST 服务接口对应的配置项,即接口配置类RestConfig。主要参数说明:
- <accessControlAllowOrigin>:配置 REST 服务可以被哪些服务跨域访问,支持填入一个域名。值为“*”时,表示所有的服务都可以跨域访问当前 REST 服务。
配置一个基于 Jersey 的 REST 接口如下所示:
<interface class="com.supermap.services.rest.JaxrsServletForJersey" name="restjsr"> <config class="com.supermap.services.rest.JaxrsConfigForJersey"> <accessControlAllowOrigin></accessControlAllowOrigin> </config> </interface>
其中,<interface>节点的 class 属性标识接口类型,对应实现类 JaxrsServletForJersey,<config>节点是该 REST 服务接口对应的配置项,即接口配置类JaxrsConfigForJersey。
配置一个 ArcGIS REST 接口如下所示:
<interface class="com.supermap.services.rest.AGSRestServlet" name="arcgisrest"> <config class="com.supermap.services.rest.AGSRestConfig"> <accessControlAllowOrigin></accessControlAllowOrigin"> <notUseTransparentTile>false</notUseTransparentTile"> </config> </interface>
其中,<interface>节点的 class 属性标识接口类型,对应实现类 AGSRestServlet,<config>节点是 ArcGIS REST 服务接口对应的配置项,即接口配置类 AGSRestConfig。主要配置参数如下:
notUseTransparentTile:设置tile资源返回图片的背景是否透明。默认:false,即透明。
配置一个Baidu REST接口如下所示:
<interface class="com.supermap.services.rest.BaiduRestServlet" name="baidurest"> <config class="com.supermap.services.rest.RestConfig"> <accessControlAllowOrigin></accessControlAllowOrigin> </config> </interface>
其中,<interface>节点的 class 属性标识接口类型,对应实现类BaiduRestServlet,<config>节点是 Baidu REST 服务接口对应的配置项,即接口配置类 RestConfig。
配置一个Google REST接口如下所示:
<interface class="com.supermap.services.rest.GoogleRestServlet" name="googlerest"> <config class="com.supermap.services.rest.RestConfig"> <accessControlAllowOrigin></accessControlAllowOrigin> </config> </interface>
其中,<interface>节点的 class 属性标识接口类型,对应实现类GoogleRestServlet,<config>节点是 Google REST 服务接口对应的配置项,即接口配置类 RestConfig。
配置一个OSM REST接口如下所示:
<interface class="com.supermap.services.rest.OSMRestServlet" name="osmrest"> <config class="com.supermap.services.rest.RestConfig"> <accessControlAllowOrigin></accessControlAllowOrigin> </config> </interface>
其中,<interface>节点的 class 属性标识接口类型,对应实现类OSMRestServlet,<config>节点是 OSM REST 服务接口对应的配置项,即接口配置类 RestConfig。
配置一个TMS REST接口如下所示:
<interface class="com.supermap.services.rest.TMSRestServlet" name="tmsrest"> <config class="com.supermap.services.rest.RestConfig"> <accessControlAllowOrigin></accessControlAllowOrigin> </config> </interface>
其中,<interface>节点的 class 属性标识接口类型,对应实现类TMSRestServlet,<config>节点是 TMS REST 服务接口对应的配置项,即接口配置类 RestConfig。
注:在 iServer 中使用 ArcGIS、Baidu、Google、OSM、TMS REST 服务接口,需要 iServer 高级版,iEdge 可直接使用。
配置 WMS 服务接口
SuperMap iServer 提供支持 WMS 1.1.1、1.3.0 标准的服务。配置一个 WMS 1.1.1 接口如下所示:
<interface class="com.supermap.services.wms.WMSServlet" name="wms111">
<config class="com.supermap.services.wms.WMSConfig">
<serviceDescription>
<keywords/>
<contactInformation>
<person>联系人</person>
<organization>联系单位</organization>
<position>位置</position>
<addressType>地址类型</addressType>
<address>地址</address>
<city>城市</city>
<stateOrProvince>省或地区</stateOrProvince>
<postCode>省或地区</postCode>
<country>国家</country>
<voiceTelephone>联系电话</voiceTelephone>
<facsimileTelephone>传真</facsimileTelephone>
<electronicMailAddress>电子邮件地址</electronicMailAddress>
</contactInformation>
</serviceDescription>
<version>1.1.1</version>
<cacheEnabled>false</cacheEnabled>
<sld>
<pointStyles/>
<lineStyles/>
<polygonStyles>
<string>./WEB-INF/config/region.sld</string>
</polygonStyles>
<textStyles/>
</sld>
<useStandardBGColor>false</useStandardBGColor>
</config>
</interface>
其中,<interface>节点的 class 属性标识接口类型,对应实现类 WMSServlet,<config>节点是该 WMS 服务接口对应的配置项,即接口配置类WMSConfig。主要配置参数如下:
- <contactInformation> :联系信息
- <person>:联系人
- <organization>:联系单位
- <position>:位置
- <addressType>:地址类型
- <address>:地址
- <city>:城市
- <stateOrProvince>:省或地区
- <postCode>:省或地区
- <country>:国家
- <voiceTelephone>:联系电话
- <facsimileTelephone>:传真
- <electronicMailAddress>:电子邮件地址
- <version>:WMS 服务的版本号,目前支持的版本有1.1.1、1.3.0。
- <crs>:WMS 接口的指定坐标系,当<version>为1.3.0时生效。可选参数。
- <srs>:WMS 接口的指定坐标系,当<version>为1.1.1时生效。可选参数。
- <cacheEnabled>:是否使用缓存。可选参数。
- <sld>:WMS 服务中包含的 SLD 信息,目前支持 WMS 1.1.1 中的点、线、面、文本图层。
- <serviceDescription>:WMS 服务描述信息,可选参数。
配置 WFS 服务接口
SuperMap iServer 提供支持 WFS 1.0.0、2.0.0 标准的服务。
配置一个 WFS 1.0.0 接口如下所示:
<interface name="wfs100" class="com.supermap.services.wfs.WFSServlet"> <config class="com.supermap.services.wfs.WFSConfig"> <version>1.0.0</version> <serviceDescription> <name>SuperMap Web Feature Service</name> <title>示例 WFS 服务</title> <serviceAbstract>SuperMap iServer 基于示范数据发布的 WFS 服务</serviceAbstract> <keywords> <string>iServer</string> <string>Sample Data</string> </keywords> <fees>none</fees> <accessConstraints>none</accessConstraints> </serviceDescription> </config> </interface>
配置一个 WFS 2.0.0 接口如下所示:
<interface name="wfs200" class="com.supermap.services.wfs.WFSServlet"> <config class="com.supermap.services.wfs.WFSConfig"> <version>2.0.0</version> <identification> <title>示例 WFS 服务</title> <description>SuperMap iServer 基于示范数据发布的 WFS 服务</description> <keywords> <string>iServer</string> <string>Sample Data</string> </keywords> <fees>none</fees> <accessConstraints>none</accessConstraints> <serviceType>OGC WFS</serviceType> <serviceTypeVersion>2.0.0</serviceTypeVersion> </identification> <provider> <providerName>北京超图软件股份有限公司</providerName> <providerSite>http://www.supermap.com.cn</providerSite> <serviceContact> <individualName>联系人姓名</individualName> <positionName>联系人职位</positionName> <phoneNumber>+86-10-59896655</phoneNumber> <faxNumber>+86-10-59896666</faxNumber> <deliveryPoint>北京市朝阳区酒仙桥北路甲10号院电子城IT产业园107号楼6层北京超图软件股份有限公司</deliveryPoint> <addressCity>北京</addressCity> <addressAdministrativeArea>北京</addressAdministrativeArea> <addressPostalCode>100015</addressPostalCode> <addressCountry>中国</addressCountry> <addressElectronicMailAddress>support@supermap.com</addressElectronicMailAddress> </serviceContact> </provider> </config> </interface>
其中,<interface>节点的 class 属性标识接口类型,对应实现类 WFSServlet,<config>节点是该 WFS 服务接口对应的配置项,即接口配置类WFSConfig。
配置 WMTS 服务接口
SuperMap iServer 提供支持 WMTS 1.0.0 标准的服务,同时提供了一个兼容《地理信息公共服务平台 电子地图数据规范》中地图分级标准的“wmts-china”接口实例,可用于对接天地图等国内地图服务,还提供了兼容 ArcGIS 产品发布的 WMTS 服务的“wmts-arcgis”接口实例,用于提供屏蔽个性化差异后能够兼容 ArcGIS 产品发布的 WMTS 服务的瓦片地图服务。
配置一个 WMTS 1.0.0 接口如下所示:
<interface class="com.supermap.services.wmts.WMTSServlet" name="wmts100"> <config class="com.supermap.services.wmts.WMTSConfig"> <customEntireBounds>37401549.97829401,4106688.3416817067,37512864.43126909,4189138.542744882</customEntireBounds> <disableTileMatrixSetLimits>GoogleMapsCompatible,GlobalCRS84Scale</disableTileMatrixSetLimits> <epsgsBoundingBoxReversed>4490,4525</epsgsBoundingBoxReversed> <identification> <title>示例 WMTS 服务</title> <description>SuperMap iServer 6R 基于示范数据发布的 WMTS 服务</description> <keywords> <string>iServer 6R</string> <string>Sample Data</string> </keywords> <fees>none</fees> <accessConstraints>none</accessConstraints> <serviceType>OGC WMTS</serviceType> <serviceTypeVersion>1.0.0</serviceTypeVersion> </identification> <provider> <providerName>北京超图软件股份有限公司</providerName> <providerSite>http://www.supermap.com.cn</providerSite> <serviceContact> <individualName>联系人姓名</individualName> <positionName>联系人职位</positionName> <phoneNumber>+86-10-59896655</phoneNumber> <faxNumber>+86-10-59896666</faxNumber> <deliveryPoint>北京市朝阳区酒仙桥北路甲10号院电子城 IT 产业园107号楼6层北京超图软件股份有限公司</deliveryPoint> <addressCity>北京</addressCity> <addressAdministrativeArea>北京</addressAdministrativeArea> <addressPostalCode>100015</addressPostalCode> <addressCountry>中国</addressCountry> <addressElectronicMailAddress>support@supermap.com</addressElectronicMailAddress> </serviceContact> </provider> <tileMatrixSets> <com.supermap.services.wmts.TileMatrixSet> <wellKnownScaleSet>Custom</wellKnownScaleSet> <scales/> <dpi>90.7142857142857</dpi> <tileWidth>256</tileWidth> <tileHeight>256</tileHeight> </com.supermap.services.wmts.TileMatrixSet> <com.supermap.services.wmts.TileMatrixSet> <wellKnownScaleSet>GlobalCRS84Scale</wellKnownScaleSet> </com.supermap.services.wmts.TileMatrixSet> <com.supermap.services.wmts.TileMatrixSet> <wellKnownScaleSet>GoogleMapsCompatible</wellKnownScaleSet> </com.supermap.services.wmts.TileMatrixSet> </tileMatrixSets> </config> </interface>
其中,<interface>节点的 class 属性标识接口类型,对应实现类 WMTSServlet,<config>节点是该 WMTS 服务接口对应的配置项,即接口配置类WMTSConfig。主要配置参数如下:
- <customEntireBounds>:指定 WMTS 服务中地图的全幅范围。填入 WMTS 服务中地图的左下角和右上角的经纬度或 X、Y 坐标,各值之间以英文逗号(",")分隔。当在某些第三方客户端,如 OpenLayers 2.10, 叠加 WMTS 服务时,要求 WMTS 服务的范围与底图的范围一致。可选参数。
- <epsgsBoundingBoxReversed>:指定需要反转 BoudingBox 中 LowerCorner、UpperCorner 的 X、Y 坐标顺序的坐标系的 EPSG 编码,各坐标系间以英文逗号分隔,填入"all"则表示对所有坐标系的坐标顺序进行反转。
- <identification>: 服务说明信息。可选参数。
- <maps>: 允许发布的地图名称,多个地图名之间之间使用逗号隔开。可选参数。
- <provider>:服务提供商的信息。可选参数。
- <tileMatrixSets>: WMTS 服务支持的所有比例尺集的集合。若比例尺集为空或其中的比例尺为空,第0级把整幅地图用一个256x256像素的图块表示,第1级把整幅地图表示成2x2个256x256像素的图块,以此类推,逐级乘2。可选参数。
- <verifyMode>:用于设置 WMTS 服务验证模式,默认为 DEFAULT ,表示 iServer 兼容规范模式,该模式兼容了部分参数,如:service,style 等。若设为 STANDARD ,则表示是 OGC 规范模式,该模式规定服务必须严格遵从 OGC 规范。可选参数。
- <hideFeatureInfo>:GetCapabilities 返回结果中是否显示 FeatureInfo 资源。设置为 true 时不显示 FeatureInfo 资源,默认值为 false 表示显示 FeatureInfo 资源。
“wmts-china”接口配置信息如下所示:
<interface class="com.supermap.services.wmts.WMTSServlet" name="wmts-china"> <config class="com.supermap.services.wmts.WMTSConfig"> <identification/> <provider/> <tileMatrixSets> <com.supermap.services.wmts.TileMatrixSet> <wellKnownScaleSet>ChinaPublicServices</wellKnownScaleSet> </com.supermap.services.wmts.TileMatrixSet> </tileMatrixSets> </config> </interface>
其中,<wellKnownScaleSet>参数指定了使用符合《地理信息公共服务平台 电子地图数据规范》中地图分级标准的“ChinaPublicServices”比例尺集。
“wmts-arcgis”接口配置信息与“wmts-100”一致,只是对于 epsgsBoundingBoxReversed、disableTileMatrixSetLimits 两个参数提供了默认值,分别为 28410,20010,2435,4525,2390,4491 和 GoogleMapsCompatible,GlobalCRS84Scale。用户仍可按需对其修改。
配置 WCS 服务接口
SuperMap iServer 提供支持 WCS 1.1.1、1.1.2 标准的服务。配置一个 WCS 1.1.1接口如下所示:
<interface class="com.supermap.services.wcs.WCSServlet" name="wcs111"> <config class="com.supermap.services.wcs.WCSConfig"> <version>1.1.1</version> <identification> <title>示例 WCS 服务</title> <description>SuperMap iServer 6R 基于示范数据发布的 WCS 服务</description> <keywords> <string>iServer 6R</string> <string>Sample Data</string> </keywords> <fees>none</fees> <accessConstraints>none</accessConstraints> <serviceType>OGC WCS</serviceType> <serviceTypeVersion>1.1.1</serviceTypeVersion> </identification> <provider> <providerName>北京超图软件股份有限公司</providerName> <providerSite>http://www.supermap.com.cn</providerSite> <serviceContact> <individualName>联系人姓名</individualName> <positionName>联系人职位</positionName> <phoneNumber>+86-10-59896655</phoneNumber> <faxNumber>+86-10-59896666</faxNumber> <deliveryPoint>北京市朝阳区酒仙桥北路甲10号院电子城 IT 产业园107号楼6层北京超图软件股份有限公司</deliveryPoint> <addressCity>北京</addressCity> <addressAdministrativeArea>北京</addressAdministrativeArea> <addressPostalCode>100015</addressPostalCode> <addressCountry>中国</addressCountry> <addressElectronicMailAddress>support@supermap.com</addressElectronicMailAddress> </serviceContact> </provider> </config> </interface>
其中,<interface>节点的 class 属性标识接口类型,对应实现类 WMTSServlet,<config>节点是该 WCS 服务接口对应的配置项,即接口配置类WCSConfig。主要配置参数如下:
- <version>:WCS 服务的版本号,目前 SuperMap iServer 支持的 WCS 服务版本为1.1.1、1.1.2。
- <identification>: 服务说明信息。可选参数。
- <provider>:服务提供商的信息。可选参数。
配置 OGC API 服务接口
SuperMap iServer 提供支持 OGC API-Features、OGC API-Tiles 标准的服务。配置一个 OGC API 接口如下所示:
<interface name="ogcapi" class="com.supermap.services.ogcapi.OGCAPIServlet"> <config class="com.supermap.services.ogcapi.OGCAPIConfig"> <apiVerison> <features>1.0</features> </apiVersion> </config> </interface>
自定义接口
自定义接口类型可以在系统配置文件(iserver-system.xml)文件中进行,添加一个自定义接口类型的示例如下:
<interface-type configClass="com.supermap.services.sm.SMConfig"> com.supermap.services.sm.SMServlet </interface-type>
其中 com.supermap.services.sm.SMServlet 是自定义的接口类型的实现类,com.supermap.services.sm.SMConfig 是自定义的接口类型的配置类。
<interface-type>节点在配置文件中的结构如下所示:
<server> <management> … <interface-types> … <interface-type > … </interface-type> </interface-types> </management> </server>