SuperMap iServer 支持以下类型的数据服务提供者:

配置本地数据服务提供者

配置一个本地数据服务提供者,如下所示:

<provider name="ugcDataProvider1" class="com.supermap.services.providers.UGCDataProvider">
      <config class="com.supermap.services.providers.UGCDataProviderSetting">
          <workspacePath>../../samples/data/World/World.sxwu</workspacePath>
          <disableFieldNameToUpperCase>false</disableFieldNameToUpperCase>
          <defaultFieldForOrderBy>POP</defaultFieldForOrderBy>
          <excludedFieldsInDatasources>
            <com.supermap.services.providers.ExcludedFieldsInDatasource>
              <dataSourceName>World</dataSourceName>
              <!-- 设置排除字段 -->
              <excludedFieldsInDatasets>
                 <com.supermap.services.providers.ExcludedFieldsInDataset>
                   <datasetName>Countries</datasetName>
                   <excludedFields>SMID,SmUserID</excludedFields>
                 </com.supermap.services.providers.ExcludedFieldsInDataset>
               </excludedFieldsInDatasets>
             <com.supermap.services.providers.ExcludedFieldsInDatasource>
           </excludedFieldsInDatasources>
           <!-- 延迟提交配置 -->
           <dataProviderDelayCommitSetting>
              <enabled>false</enabled>
              <logEntireErrorMsg>true</logEntireErrorMsg>
              <dayOfWeek>1,2,3,4,5,6,7</dayOfWeek>
              <hour>3</hour>
              <minute>0</minute>
              <commitMode>SPECIFICTIME</commitMode>
              <countToCommit>1000</countToCommit>
              <updateInterval>300</updateInterval>
              <cachePath>/output</cachePath>
           </dataProviderDelayCommitSetting>
           <!-- 批量添加要素配置 -->
           <maxFeatureWriteThreadCount>1</maxFeatureWriteThreadCount>
           <writePermitTimeout>120</writePermitTimeout>
           <!-- 设置发布的数据源数据集信息 -->
           <datasourceInfos>
              <com.supermap.services.providers.FilteredDatasourceInfo>
                 <datasourceName>China</datasourceName>
                 <includedDatasetNames>
                   <string>World_Continent_pg</string>
                   <string>Island_B_pg</string>
                   <string>World_Ocean_txt</string>
                 </includedDatasetNames>
              </com.supermap.services.providers.FilteredDatasourceInfo>
           </datasourceInfos>
           <isMultiInstance>false</isMultiInstance>  
           <isDatasetsCheck>true</isDatasetsCheck>
           <ignoreTotalCount>false</ignoreTotalCount>
           <videoStreamServiceInfo>  
              <serviceName>test</datasourceName>
              <protocolName>HLS</protocolName>
           </videoStreamServiceInfo>  
        </config>
</provider>

其中<provider>中的 class 标识的是本地数据服务提供者的实现类,<config>中的 class 标识的是本地数据服务提供者对应的配置类,即 UGCDataProviderSetting,<config>中的内容是相应的配置项。

其中,com.supermap.services.providers.ExcludedFieldsInDatasource、com.supermap.services.providers.ExcludedFieldsInDataset为字段排除设置实现类。<dataSourceName>为数据源名称,<datasetName>为数据集名称,<excludedFields>指定排除的字段。

               a. 当数据源名称存在时,需设置:

               b. 当数据源名称不存在时,需设置:

配置 REST 数据服务提供者

配置一个 REST 数据服务提供者,如下所示:

<provider name="restMapProvider1" class="com.supermap.services.providers.RESTDataProvider">
        <config class="com.supermap.services.providers.RESTDataProviderSetting">
                <restServiceRootURL>http://localhost:8090/iserver/services/rest</restServiceRootURL>
                <token>GsXST0cE0CumxQUFXBX7Oopin4<token>
        </config>
</provider>

其中<provider>中的 class 标识的是 REST 数据服务提供者的实现类,<config>中的 class 标识的是 REST 数据服务提供者对应的配置类,即 RestDataProviderSetting,<config>中的内容是相应的配置项:

配置 ArcGIS REST 数据服务提供者

配置一个 ArcGIS  REST 数据服务提供者,如下所示:

<provider class="com.supermap.services.providers.ArcGISRestDataProvider" enabled="true" name="arcgisRestDataProvider-test"> 
      <config class="com.supermap.services.providers.ArcGISRestDataProviderSetting"> 
        <restServiceRootURL>http://localhost:6080/arcgis/rest/services/SampleWorldCities/FeatureServer</restServiceRootURL>  
        <token>51fda53ceb25478cb37fa059ab013160</token>  
      </config> 
    </provider>

其中<provider>中的 class 标识的是 ArcGIS REST 数据服务提供者的实现类,<config>中的 class 标识的是 ArcGIS REST 数据服务提供者对应的配置类,即 ArcGISRestDataProviderSetting,<config>中的内容是相应的配置项:

配置 WFS 数据服务提供者

配置一个 WFS 数据服务提供者,如下所示:

<provider class="com.supermap.services.providers.WFSDataProvider"
        enabled="true" name="wfsDataProvider-test">
        <config class="com.supermap.services.providers.WFSDataProviderSetting">
                <serviceRootURL>http://localhost:8090/iserver/services/data-world/wfs100/utf-8</serviceRootURL>
        </config>
</provider>

其中<provider>中的 class 标识的是 REST 数据服务提供者的实现类,<config>中的 class 标识的是 REST 数据服务提供者对应的配置类,即 WFSDataProviderSetting,<config>中的内容是相应的配置项:

配置 GeoPackage 数据服务提供者

配置一个 GeoPackage 数据服务提供者,如下所示:

<provider class="com.supermap.services.providers.GeoPackageDataProvider"  enabled="true"  name="gpkgData-samplevectors">  
      <config class="com.supermap.services.providers.GeoPackageDataProviderSetting"> 
             <filePath>../../samples/sample_vectors.gpkg</filePath>  
      </config>  
</provider> 

其中<provider>中的 class 标识的是 GeoPackage 数据服务提供者的实现类,<config>中的 class 标识的是 GeoPackage 数据服务提供者对应的配置类,即 GeoPackageDataProviderSetting,<config>中的内容与 GeoPackageDataProviderSetting  中的配置项相对应:

 

配置 Shapefile 数据服务提供者

配置一个 Shapefile 数据服务提供者,如下所示:

    <provider class="com.supermap.services.providers.ShapefileDataProvider" enabled="true" name="shapefileData-">
      <config class="com.supermap.services.providers.ShapefileDataProviderSetting">
        <shpDir>E:/supermap/data/shp</shpDir> 
        <charset>UTF-8</charset>
      </config>
    </provider> 

其中<provider>中的 class 标识的是 Shapefile 数据服务提供者的实现类,<config>中的 class 标识的是 Shapefile 数据服务提供者对应的配置类,即 ShapefileDataProviderSetting,<config>中的内容与 ShapefileDataProviderSetting  中的配置项相对应:

 

配置 PostGIS 数据服务提供者

PostGIS 数据服务提供者的配置在<provider>节点中进行。具体配置方式如下:

    <provider class="com.supermap.services.providers.PostgisDataProvider" enabled="true" name="data-postGIS">
      <config class="com.supermap.services.providers.PostgisDataProviderSetting"> 
        <dbType>postgis</dbType>  
        <host>192.168.17.212</host>  
        <port>5432</port>  
        <database>postGIS</database> 
        <schema>public</schema> 
        <user>postgres</user>  
        <passwd>iserver</passwd> 
        <isDatasetsCheck>true</isDatasetsCheck> 
           <!-- 设置发布的数据源数据集信息 -->
         <datasourceInfos>
            <com.supermap.services.providers.FilteredDatasourceInfo>
               <datasourceName>test</datasourceName>
               <includedDatasetNames>
                 <string>test_pg</string>
                 <string>test_B_pg</string>
                 <string>test_Ocean_txt</string>
                </includedDatasetNames>
            </com.supermap.services.providers.FilteredDatasourceInfo>
         </datasourceInfos> 
      </config>
    </provider> 

其中<provider>中的 class 标识的是 PostGIS 数据服务提供者的实现类,<config>中的  class 标识的是 PostGIS 服务提供者对应的配置类,即 PostgisDataProviderSetting,<config>中的内容对应的是 PostgisDataProviderSetting 对应的配置项:

配置区块链数据服务提供者

区块链数据服务提供者的配置在<provider>节点中进行。具体配置方式如下:

    <provider name="data-BlockchainData" enabled="true" class="com.supermap.services.providers.BlockchainDataProvider">
      <config class="com.supermap.services.providers.BlockchainDataProviderSetting"> 
        <maxFeatures>1000</maxFeatures>  
        <dbType>BCGIS</dbType>  
        <alias>BlockchainData</alias>  
        <networkConfigFile>D://blockchain-network-supermapcc.yaml</networkConfigFile>  
        <modifyUsers>User1;User2;User3</modifyUsers>  
        <threadsPerCore>8</threadsPerCore>
      </config>
    </provider> 

其中<provider>中的 class 标识的是区块链数据服务提供者的实现类,<config>中的 class 标识的是区块链数据服务提供者对应的配置类,即 BlockchainDataProviderSetting,<config>中的内容对应的是 BlockchainDataProviderSetting 对应的配置项:

配置 Elasticsearch 服务提供者

Elasticsearch 服务提供者的配置在<provider>节点中进行。具体配置方式如下:

    <provider class="com.supermap.services.providers.ElasticsearchDataProvider" enabled="true" name="data-es">
      <config class="com.supermap.services.providers.ElasticsearchDataProviderSetting"> 
        <maxfeatures>1000</maxfeatures>  
        <connInfo>
            <serverAdresses>
               <string>https://127.0.0.1:9200</string>
            </serverAdresses>
            <clusterName>my-application</clusterName>
            <indexName>i-1VLKvgQhmAYdIwI7tfkg</indexName>
            <username>node</username>
            <password>123456</password>
        </connInfo>
      </config>
    </provider> 

其中 <provider> 中的 class 标识的是 Elasticsearch 服务提供者的实现类,<config>中的  class 标识的是 Elasticsearch 服务提供者对应的配置类,即 ElasticsearchDataProviderSetting,<config>中的内容对应的是 ElasticsearchDataProviderSetting 对应的配置项: