首页 理论教育 用户自定义数据源的扩充

用户自定义数据源的扩充

时间:2022-01-19 理论教育 版权反馈
【摘要】:针对数据库和文件类型的数据源分别提供了两种方式进行用户自定义数据源扩充。①针对数据库类型数据源的扩充以SQLserver来存储矢量数据:生成SqlServerDataProvider类,让其由VectorDBDataProvider类继承而来,实现该类中的一系列抽象方法。参照上面的Sql server的例子,也可以实现自定义数据源描述类。
用户自定义数据源的扩充_网络地理信息系统

9.3.9 用户自定义数据源的扩充

在GeoSurf中分离了空间数据获取与空间数据模型,用户可以通过自定义数据获取方法自行扩充系统的数据源。针对数据库和文件类型的数据源分别提供了两种方式进行用户自定义数据源扩充。下面分别介绍这两种扩充方法。

①针对数据库类型数据源的扩充

以SQLserver来存储矢量数据:生成SqlServerDataProvider类,让其由VectorDBDataProvider类继承而来,实现该类中的一系列抽象方法。必须实现的是:矩形查询等一些查询方法、元信息获取的方法、检查传入数据源类型的方法。按照GEOSURF_XML_Config_DataSourceTypeConfig.dtd格式的要求,生成一个dataSourceTypeConfig.xml文件,如下所示:

<?xml version="1.0"encoding="UTF-8"?>

<DataSourceTypeConfig>

  <Config>

  <DataSourceType>sqlserver</DataSourceType>

  <DataSourceDesc_className>DBDataSourceDesc</DataSourceDesc_ className>

  <DataProvider_className>SqlServerDataProvider</DataProvider_ className>

  <Layer_ClassName>GeoSurfFeatureLayer</Layer_ClassName>

  </Config>

</DataSourceTypeConfig>

把上面生成的xml配置文档放入classpath下面的config文件夹下。在描述地图模型的地图定义文件中,在来自sqlserver数据库的层中的描述数据源路径的URL元素中,放入sqlserver:poolname.owner.table样式的字符串,poolname.owner.table的意思和上面OracleDataProvider的意义一样。对于上面的情况,数据源名称格式必须是type:connectionName:owner.table。如果要实现一个不按照这样的格式的描述(注意,“type:”是必须要的),那么就必须自定义数据源描述类(但必须继承自DataSourceDesc)。此时,在上面的一系列步骤中,有两处需要修改:自定义的数据提供者类应由VectorDBDataProvider的超类VectorDataProvider继承而来;dataSourceTypeConfig.xml中DataSourceDesc_ className元素的文本就应该是自定义的数据源描述类。

②针对文件类型数据源的扩充

自定义文件格式type1在文件中存储矢量数据:从VectorFileDataProvider类继承,实现自定义类Type1DataProvider(当然,用户可以起自己喜欢的名字,不过最好还是和整个体系的命名法则一致),实现超类中的一系列抽象方法。必须实现的就是全部查询的查询方法,以及元信息获取的方法,检查传入数据源类型的方法。按照GEOSURF_XML_Config_DataSourceTypeConfig.dtd格式的要求,生成一个dataSourceTypeConfig.xml文件,如下所示:

<?xml version="1.0"encoding="UTF-8"?>

<DataSourceTypeConfig>

  <Config>

  <DataSourceType>type1</DataSourceType>

  <DataSourceDesc_className>FileDataSourceDesc</DataSourceDesc_ className>

  <DataProvider_className>Type1ServerDataProvider</DataProvider_ className>

  <Layer_ClassName>GeoSurfFeatureLayer</Layer_ClassName>

  </Config>

</DataSourceTypeConfig>

把上面生成的xml配置文档放入classpath下面的config文件夹下。在描述地图模型的地图定义文件中,在来自type1格式文件的层的描述数据源路径的URL元素中,放入type1:filePath样式的字符串,type1:filePath必须和FileDataSourceDesc要求的格式一样。参照上面的Sql server的例子,也可以实现自定义数据源描述类。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈