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>中的内容是相应的配置项。
<workspacePath>server=../samples/data/World/World.sxwu;password=supermap</workspacePath>此外,工作空间路径支持从环境变量和系统配置文件中读取。可写为:
<workspacePath>server=${datapath1}/World.sxwu;password=supermap</workspacePath>详细说明请参见:预设本地工作空间路径
其中,com.supermap.services.providers.ExcludedFieldsInDatasource、com.supermap.services.providers.ExcludedFieldsInDataset为字段排除设置实现类。<dataSourceName>为数据源名称,<datasetName>为数据集名称,<excludedFields>指定排除的字段。
a. 当数据源名称存在时,需设置:
b. 当数据源名称不存在时,需设置:
配置一个 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 数据服务提供者,如下所示:
<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 数据服务提供者,如下所示:
<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 数据服务提供者,如下所示:
<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 数据服务提供者,如下所示:
<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 数据服务提供者的配置在<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 服务提供者的配置在<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 对应的配置项: