public class RestDataProvider extends RestProviderBase implements ProviderContextAware, DataProvider, GetFeatureSupportDynamicProj
REST 数据服务提供者。
RESTDataProvider 提供了从 REST 服务获取 SuperMap iServer 数据的相关服务,并封装了与 SuperMap iServer 数据相关的 GIS 功能。
RestProviderBase.CacheModel, RestProviderBase.RestRequestException
JAVA_POSTFIX, javaConverter, JSON_POSTFIX, jsonConverter, jsonDecoder, lock, logger, message, XML_POSTFIX, xmlDecoder
构造器和说明 |
---|
RestDataProvider()
构造函数。
|
RestDataProvider(RestDataProviderSetting setting)
构造函数。
|
限定符和类型 | 方法和说明 |
---|---|
EditResult |
addFeatures(java.lang.String datasourceName, java.lang.String datasetName, java.util.List<Feature> targetFeatures)
在指定数据集中增加一组同类型的要素。
|
boolean |
clearFeatures(java.lang.String datasourceName, java.lang.String datasetName)
清空指定数据集的要素。
|
boolean |
containsDataset(java.lang.String datasourceName, java.lang.String datasetName)
判断指定数据源是否包含指定的数据集。
|
boolean |
copyDataset(java.lang.String srcDatasourceName, java.lang.String srcDatasetName, java.lang.String destDatasourceName, java.lang.String destDatasetName)
复制数据集。
|
boolean |
createDataset(java.lang.String datasourceName, DatasetInfo datasetInfo)
在指定的数据源中,根据数据集信息创建一个新的数据集。
|
boolean |
deleteDataset(java.lang.String datasourceName, java.lang.String datasetName)
删除指定数据源中的指定数据集。
|
EditResult |
deleteFeatures(java.lang.String datasourceName, QueryParameter parameters)
指定数据源中通过sql删除要素。
|
EditResult |
deleteFeatures(java.lang.String datasourceName, java.lang.String datasetName, int[] ids)
在指定的数据集中删除一组要素。
|
void |
dispose()
释放资源对象。
|
protected java.lang.String |
getDataRestDatasetName(java.lang.String datasourceName, java.lang.String datasetName)
返回满足data-rest 模块标准的数据集名
|
DatasetInfo |
getDatasetInfo(java.lang.String datasourceName, java.lang.String datasetName)
获取指定数据源的指定数据集信息。
|
java.util.List<DatasetInfo> |
getDatasetInfos(java.lang.String datasourceName)
获取指定数据源的所有数据集的信息。
|
java.util.List<java.lang.String> |
getDatasetNames(java.lang.String datasourceName)
获取当前数据源的所有数据集名称。
|
DatasourceInfo |
getDatasourceInfo(java.lang.String datasourceName)
获取指定数据源的信息。
|
java.util.List<DatasourceInfo> |
getDatasourceInfos()
获取当前数据服务提供者对应的所有数据源信息。
|
java.util.List<DomainInfo> |
getDomainInfos(java.lang.String datasourceName, java.lang.String datasetName)
获取指定数据集的值域信息
|
GetFeatureResult |
getFeature(GetFeatureParameters parameters)
查询并返回要素结果。
|
java.util.List<Feature> |
getFeature(java.lang.String datasourceName, QueryParameter queryParam)
通过 SQL 查询条件获取要素。
|
java.util.List<Feature> |
getFeature(java.lang.String datasourceName, QueryParameter queryParam, int maxFeatures)
通过 SQL 查询条件获取要素。
|
java.util.List<Feature> |
getFeature(java.lang.String datasourceName, QueryParameter queryParam, int maxFeatures, PrjCoordSys targetPrj)
通过 SQL 查询条件获取要素。
|
java.util.List<Feature> |
getFeature(java.lang.String datasourceName, java.lang.String datasetName, Geometry geometry, double distance, java.lang.String attributeFilter, java.lang.String[] fields)
获取落在指定空间对象的缓冲区内,并满足一定属性过滤条件的要素。
|
java.util.List<Feature> |
getFeature(java.lang.String datasourceName, java.lang.String datasetName, Geometry geometry, SpatialQueryMode spatialQueryMode, java.lang.String attributeFilter, java.lang.String[] fields)
获取与指定几何对象具有特定空间查询模式,并满足指定属性过滤条件的要素。
|
java.util.List<Feature> |
getFeature(java.lang.String datasourceName, java.lang.String datasetName, Geometry geometry, SpatialQueryMode spatialQueryMode, java.lang.String attributeFilter, java.lang.String[] fields, PrjCoordSys targetPrj)
获取与指定几何对象具有特定空间查询模式,并满足指定属性过滤条件的要素,支持对返回的几何要素进行动态投影。
|
java.util.List<Feature> |
getFeature(java.lang.String datasourceName, java.lang.String datasetName, int[] ids, java.lang.String[] fields)
根据指定要素 ID 获取指定数据集中的要素。
|
java.util.List<Feature> |
getFeature(java.lang.String datasourceName, java.lang.String datasetName, int[] ids, java.lang.String[] fields, int fromIndex, int toIndex)
以支持分页的方式,根据指定要素 ID获取指定数据集中的要素。
|
java.util.List<Feature> |
getFeature(java.lang.String datasourceName, java.lang.String datasetName, Rectangle2D bounds, java.lang.String attributeFilter, java.lang.String[] fields)
获取在指定空间范围内,并满足一定属性过滤条件的要素。
|
java.util.List<Feature> |
getFeature(java.lang.String datasourceName, java.lang.String datasetName, Rectangle2D bounds, java.lang.String attributeFilter, java.lang.String[] fields, PrjCoordSys targetPrj)
获取在指定空间范围内,并满足一定属性过滤条件的要素。
|
java.util.List<FieldInfo> |
getFieldInfos(java.lang.String datasourceName, java.lang.String datasetName)
获取指定数据集的所有字段信息。
|
protected RestProviderSetting |
getRestProviderSetting()
返回REST服务提供者配置信息。
|
EditResult |
modelingByRules(java.lang.String datasourceName, java.lang.String datasetName, java.util.List<ModelingByRulesPostParameter> ruleParams)
根据各项参数规则建模
|
boolean |
renameDataset(java.lang.String datasourceName, java.lang.String oldName, java.lang.String newName)
修改指定数据集的名称。
|
protected java.lang.String |
sendAddFeaturesRequest(java.lang.String url, java.util.List<Feature> targetFeatures) |
protected void |
sendCopyDatasetRequest(java.lang.String connection, java.lang.String srcDatasourceName, java.lang.String srcDatasetName, java.lang.String destDatasetName) |
protected java.lang.String |
sendCreateDatasetRequest(java.lang.String createDatasetUrl, DatasetInfo datasetInfo) |
protected void |
sendDeleteDatasetRequest(java.lang.String url) |
protected void |
sendDeleteFeaturesRequest(java.lang.String url) |
protected java.lang.String |
sendDeleteFeaturesRequest(java.lang.String url, java.lang.String text)
重写sendDeleteFeaturesRequest方法,用POST方法模拟DELETE,解决调用错clearFeature接口
|
protected void |
sendGetupdateDatasetInfoRequest(java.lang.String url) |
protected void |
sendupdateDatasetInfoRequest(java.lang.String url, DatasetInfo newDatasetInfo) |
protected void |
sendupdateDatasourceInfoRequest(java.lang.String url, DatasourceInfo newDatasourceInfo) |
protected void |
sendUpdateFeaturesRequest(java.lang.String url, java.util.List<Feature> targetFeatures) |
void |
setProviderContext(ProviderContext context)
设置服务提供者上下文。
|
double |
statistic(java.lang.String datasourceName, java.lang.String datasetName, int fieldIndex, StatisticMode statisticMode)
在指定的数据集中,根据指定的统计方法对指定字段进行统计计算。
|
double |
statistic(java.lang.String datasourceName, java.lang.String datasetName, java.lang.String fieldName, StatisticMode statisticMode)
在指定的数据集中,根据指定的统计方法对指定字段进行统计计算。
|
void |
updateDatasetInfo(java.lang.String datasourceName, java.lang.String datasetName, DatasetInfo newDatasetInfo)
在指定的数据源中,更新指定数据集的信息。
|
void |
updateDatasourceInfo(java.lang.String datasourceName, DatasourceInfo newDatasourceInfo)
用新的数据源信息更新原来的数据源信息。
|
EditResult |
updateFeatures(java.lang.String datasourceName, java.lang.String datasetName, java.util.List<Feature> targetFeatures)
在指定的数据集中,更新一组要素。
|
void |
updateFieldInfos(java.lang.String datasourceName, java.lang.String datasetName, java.util.List<FieldInfo> newFieldInfos)
使用该方法来实现对字段的添加、删除、修改操作,即将整个数据集中的字段(除 SuperMap 系统字段)用新的字段替换掉。
|
boolean |
updateModelTextures(java.lang.String datasourceName, java.lang.String datasetName, java.lang.String modelID, java.util.List<java.lang.String> textureNames, java.util.List<byte[]> modelTextures)
更新指定模型纹理
|
clearCache, executeRequest, executeRequest, executeRequest, executeRequestByApacheHttpClientForByteArray, executeRequestByRestletClientForByteArray, executeRequestForByteArray, executeRequestForByteArray, executeRequestForByteArray, executeRequestForByteArray, executeRequestForList, executeRequestForList, executeRequestForList, executeRequestForList, executeRequestForStream, executeRequestForStream, executeRequestForStream, executeRequestForText, executeRequestForText, executeRequestForText, getApacheHttpClient, getRestletRequest, handleExeption, init, initHttpClient, newAndSetClient, rectifyRestServiceRootURL
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getDatasetGroupInfo, getDatasetGroupNames, getFeature, getFeature
public RestDataProvider(RestDataProviderSetting setting)
构造函数。
setting
- Rest数据服务提供者参数对象。public RestDataProvider()
构造函数。
public void setProviderContext(ProviderContext context)
ProviderContextAware
设置服务提供者上下文。
setProviderContext
在接口中 ProviderContextAware
context
- 服务提供者上下文。public boolean createDataset(java.lang.String datasourceName, DatasetInfo datasetInfo)
在指定的数据源中,根据数据集信息创建一个新的数据集。
createDataset
在接口中 DataProvider
datasourceName
- 数据源名称。datasetInfo
- 数据集信息。public boolean deleteDataset(java.lang.String datasourceName, java.lang.String datasetName)
删除指定数据源中的指定数据集。
deleteDataset
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。public boolean containsDataset(java.lang.String datasourceName, java.lang.String datasetName)
判断指定数据源是否包含指定的数据集。
containsDataset
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。public boolean renameDataset(java.lang.String datasourceName, java.lang.String oldName, java.lang.String newName)
修改指定数据集的名称。
renameDataset
在接口中 DataProvider
datasourceName
- 数据源名称。oldName
- 旧数据集名称。newName
- 新数据集名称。public boolean copyDataset(java.lang.String srcDatasourceName, java.lang.String srcDatasetName, java.lang.String destDatasourceName, java.lang.String destDatasetName)
复制数据集。
从指定的源数据源中,复制指定的源数据集到指定的目标数据源中的目标数据集。
copyDataset
在接口中 DataProvider
srcDatasourceName
- 源数据源的名称。srcDatasetName
- 源数据集的名称。destDatasourceName
- 目标数据源名。destDatasetName
- 目标数据集的名称。public EditResult addFeatures(java.lang.String datasourceName, java.lang.String datasetName, java.util.List<Feature> targetFeatures)
在指定数据集中增加一组同类型的要素。
SuperMap 的每一个数据集都具有类型(DatasetType
),可以是点数据集、线数据集、面数据集等等, 每一个数据集中的要素具有对应的类型,比如点数据集中存储的一定是点要素。因此,在向一个数据集中添加要素的时候, 添加的要素必须是同一种类型。
addFeatures
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。targetFeatures
- 待添加的要素列表,列表中的要素必须是同一种类型。public EditResult deleteFeatures(java.lang.String datasourceName, java.lang.String datasetName, int[] ids)
在指定的数据集中删除一组要素。
deleteFeatures
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。ids
- 待删除要素的 ID 数组。public java.util.List<Feature> getFeature(java.lang.String datasourceName, java.lang.String datasetName, Rectangle2D bounds, java.lang.String attributeFilter, java.lang.String[] fields)
获取在指定空间范围内,并满足一定属性过滤条件的要素。
getFeature
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。bounds
- 指定的查询范围。attributeFilter
- 属性查询过滤条件。如 fieldValue < 100,name like '%酒店%'fields
- 待返回的字段数组。当该参数为 null 时,返回全部字段。public EditResult updateFeatures(java.lang.String datasourceName, java.lang.String datasetName, java.util.List<Feature> targetFeatures)
在指定的数据集中,更新一组要素。
参数 targetFeatures 是新要素列表,其要素 ID 与数据集中待更新的要素 ID 相同,根据 ID 查找到待更新的要素, 然后将原要素更新到新的要素。
updateFeatures
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。targetFeatures
- 新要素列表。其 ID 与要更新的要素 ID 相同。public boolean clearFeatures(java.lang.String datasourceName, java.lang.String datasetName)
清空指定数据集的要素。
clearFeatures
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。public java.util.List<Feature> getFeature(java.lang.String datasourceName, java.lang.String datasetName, int[] ids, java.lang.String[] fields)
根据指定要素 ID 获取指定数据集中的要素。
getFeature
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。ids
- 要素 ID。fields
- 待返回的字段数组。当该参数为 null 时,返回全部字段。public java.util.List<Feature> getFeature(java.lang.String datasourceName, java.lang.String datasetName, Geometry geometry, double distance, java.lang.String attributeFilter, java.lang.String[] fields)
获取落在指定空间对象的缓冲区内,并满足一定属性过滤条件的要素。
getFeature
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。geometry
- 几何对象。distance
- 缓冲区的半径。attributeFilter
- 属性查询过滤条件。如 fieldValue < 100,name like '%酒店%'fields
- 待返回的字段数组。当该参数为 null 时,返回全部字段。public java.util.List<Feature> getFeature(java.lang.String datasourceName, java.lang.String datasetName, Geometry geometry, SpatialQueryMode spatialQueryMode, java.lang.String attributeFilter, java.lang.String[] fields)
获取与指定几何对象具有特定空间查询模式,并满足指定属性过滤条件的要素。
getFeature
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。geometry
- 几何对象。spatialQueryMode
- 空间查询模式。attributeFilter
- 属性查询过滤条件。如 fieldValue < 100,name like '%酒店%'fields
- 待返回的字段数组。当该参数为 null 时,返回全部字段。public java.util.List<Feature> getFeature(java.lang.String datasourceName, QueryParameter queryParam)
通过 SQL 查询条件获取要素。
getFeature
在接口中 DataProvider
datasourceName
- 数据源名称。queryParam
- 查询参数。public java.util.List<Feature> getFeature(java.lang.String datasourceName, QueryParameter queryParam, int maxFeatures)
通过 SQL 查询条件获取要素。
getFeature
在接口中 DataProvider
datasourceName
- 数据源名称。queryParam
- 查询参数。maxFeatures
- 最多可返回的要素数量。public GetFeatureResult getFeature(GetFeatureParameters parameters)
DataProvider
查询并返回要素结果。
getFeature
在接口中 DataProvider
parameters
- 是对其它getFeature参数的封装。public java.util.List<DatasourceInfo> getDatasourceInfos()
获取当前数据服务提供者对应的所有数据源信息。
getDatasourceInfos
在接口中 DataProvider
public DatasourceInfo getDatasourceInfo(java.lang.String datasourceName)
获取指定数据源的信息。
getDatasourceInfo
在接口中 DataProvider
datasourceName
- 数据源名称。public void updateDatasourceInfo(java.lang.String datasourceName, DatasourceInfo newDatasourceInfo)
用新的数据源信息更新原来的数据源信息。
updateDatasourceInfo
在接口中 DataProvider
datasourceName
- 数据源名称。newDatasourceInfo
- 新的数据源信息。public java.util.List<DatasetInfo> getDatasetInfos(java.lang.String datasourceName)
获取指定数据源的所有数据集的信息。
getDatasetInfos
在接口中 DataProvider
datasourceName
- 数据源名称。public DatasetInfo getDatasetInfo(java.lang.String datasourceName, java.lang.String datasetName)
获取指定数据源的指定数据集信息。
getDatasetInfo
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。public void updateDatasetInfo(java.lang.String datasourceName, java.lang.String datasetName, DatasetInfo newDatasetInfo)
在指定的数据源中,更新指定数据集的信息。
updateDatasetInfo
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 待更新的数据集的名字。newDatasetInfo
- 新的数据集信息。public java.util.List<DomainInfo> getDomainInfos(java.lang.String datasourceName, java.lang.String datasetName)
获取指定数据集的值域信息
getDomainInfos
在接口中 DataProvider
datasourceName
- 数据源名称datasetName
- 数据集名称public java.util.List<FieldInfo> getFieldInfos(java.lang.String datasourceName, java.lang.String datasetName)
获取指定数据集的所有字段信息。
getFieldInfos
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。public void updateFieldInfos(java.lang.String datasourceName, java.lang.String datasetName, java.util.List<FieldInfo> newFieldInfos)
使用该方法来实现对字段的添加、删除、修改操作,即将整个数据集中的字段(除 SuperMap 系统字段)用新的字段替换掉。
如果使用的 SuperMap 数据,目前不支持更新 SuperMap 系统字段的别名。
updateFieldInfos
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。newFieldInfos
- 新的字段信息。如果使用的 SuperMap 数据,新的字段信息列表不能包含 SuperMap 的系统字段。public double statistic(java.lang.String datasourceName, java.lang.String datasetName, int fieldIndex, StatisticMode statisticMode)
在指定的数据集中,根据指定的统计方法对指定字段进行统计计算。
statistic
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。fieldIndex
- 字段序号。statisticMode
- 统计方法。public double statistic(java.lang.String datasourceName, java.lang.String datasetName, java.lang.String fieldName, StatisticMode statisticMode)
在指定的数据集中,根据指定的统计方法对指定字段进行统计计算。
statistic
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。fieldName
- 字段名称。statisticMode
- 统计方法。public void dispose()
Disposable
释放资源对象。
dispose
在接口中 Disposable
dispose
在类中 RestProviderBase
protected RestProviderSetting getRestProviderSetting()
RestProviderBase
getRestProviderSetting
在类中 RestProviderBase
protected java.lang.String sendCreateDatasetRequest(java.lang.String createDatasetUrl, DatasetInfo datasetInfo)
protected void sendDeleteDatasetRequest(java.lang.String url)
protected void sendCopyDatasetRequest(java.lang.String connection, java.lang.String srcDatasourceName, java.lang.String srcDatasetName, java.lang.String destDatasetName)
protected java.lang.String sendAddFeaturesRequest(java.lang.String url, java.util.List<Feature> targetFeatures)
protected void sendDeleteFeaturesRequest(java.lang.String url)
protected java.lang.String sendDeleteFeaturesRequest(java.lang.String url, java.lang.String text)
protected void sendUpdateFeaturesRequest(java.lang.String url, java.util.List<Feature> targetFeatures)
protected void sendupdateDatasourceInfoRequest(java.lang.String url, DatasourceInfo newDatasourceInfo)
protected void sendGetupdateDatasetInfoRequest(java.lang.String url)
protected void sendupdateDatasetInfoRequest(java.lang.String url, DatasetInfo newDatasetInfo)
protected java.lang.String getDataRestDatasetName(java.lang.String datasourceName, java.lang.String datasetName)
datasourceName
-datasetName
-public EditResult deleteFeatures(java.lang.String datasourceName, QueryParameter parameters)
DataProvider
指定数据源中通过sql删除要素。
deleteFeatures
在接口中 DataProvider
datasourceName
- 数据源名称。parameters
- 查询参数。public java.util.List<java.lang.String> getDatasetNames(java.lang.String datasourceName)
DataProvider
获取当前数据源的所有数据集名称。
getDatasetNames
在接口中 DataProvider
public java.util.List<Feature> getFeature(java.lang.String datasourceName, java.lang.String datasetName, int[] ids, java.lang.String[] fields, int fromIndex, int toIndex)
DataProvider
以支持分页的方式,根据指定要素 ID获取指定数据集中的要素。
getFeature
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。ids
- 要素 ID。fields
- 待返回的字段数组。当该参数为 null 时,返回全部字段。fromIndex
- 分页结果的最小索引号toIndex
- 分页结果的最大索引号public java.util.List<Feature> getFeature(java.lang.String datasourceName, java.lang.String datasetName, Rectangle2D bounds, java.lang.String attributeFilter, java.lang.String[] fields, PrjCoordSys targetPrj)
GetFeatureSupportDynamicProj
获取在指定空间范围内,并满足一定属性过滤条件的要素。
getFeature
在接口中 GetFeatureSupportDynamicProj
datasourceName
- 数据源名称。datasetName
- 数据集名称。bounds
- 指定的查询范围。attributeFilter
- 属性查询过滤条件。如 fieldValue < 100,name like '%酒店%'fields
- 待返回的字段数组。当该参数为 null 时,返回全部字段。targetPrj
- 返回的要素中几何对象的坐标系public java.util.List<Feature> getFeature(java.lang.String datasourceName, QueryParameter queryParam, int maxFeatures, PrjCoordSys targetPrj)
GetFeatureSupportDynamicProj
通过 SQL 查询条件获取要素。
getFeature
在接口中 GetFeatureSupportDynamicProj
datasourceName
- 数据源名称。queryParam
- 查询参数。maxFeatures
- 最多可返回的要素数量。targetPrj
- 返回的要素中几何对象的坐标系public java.util.List<Feature> getFeature(java.lang.String datasourceName, java.lang.String datasetName, Geometry geometry, SpatialQueryMode spatialQueryMode, java.lang.String attributeFilter, java.lang.String[] fields, PrjCoordSys targetPrj)
GetFeatureSupportDynamicProj
获取与指定几何对象具有特定空间查询模式,并满足指定属性过滤条件的要素,支持对返回的几何要素进行动态投影。
getFeature
在接口中 GetFeatureSupportDynamicProj
datasourceName
- 数据源名称。datasetName
- 数据集名称。geometry
- 几何对象。spatialQueryMode
- 空间查询模式。attributeFilter
- 属性查询过滤条件。如 fieldValue < 100,name like '%酒店%'fields
- 待返回的字段数组。当该参数为 null 时,返回全部字段。targetPrj
- 待返回的字段数组。当该参数为 null 时,返回全部字段。public EditResult modelingByRules(java.lang.String datasourceName, java.lang.String datasetName, java.util.List<ModelingByRulesPostParameter> ruleParams)
DataProvider
根据各项参数规则建模
modelingByRules
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。ruleParams
- 建模参数列表.public boolean updateModelTextures(java.lang.String datasourceName, java.lang.String datasetName, java.lang.String modelID, java.util.List<java.lang.String> textureNames, java.util.List<byte[]> modelTextures)
DataProvider
更新指定模型纹理
updateModelTextures
在接口中 DataProvider
datasourceName
- 数据源名称。datasetName
- 数据集名称。modelID
- 模型ID。textureNames
- 纹理名称列表.modelTextures
- 纹理流列表.