要素源

广义地来讲,要素源是存储了要素的数据源,例如Oracle空间数据库、SHP文件等。在MapGuide中,要素源是一种存储在资源库中的资源,它定义了连接到某一种FDO Provider的参数、要素的空间参考系等信息。要素源资源的模式如1014所示,106列出了要素源定义的一些主要元素。

 

名称

描述

Provider

用于指定要素源使用的FDO Provider的类型和版本号。

Parameter

用于指定连接到指定FDO Provider的连接参数。

ConfigurationDocument

用于指定连接到FDO Provider使用的FDO配置文件。

LongTransaction

用于指定连接到FDO Provider使用的长事务。

SupplementalSpatialContextInfo

用于指定一个补充坐标系,在要素类的坐标系未知或希望覆盖掉要素类已有坐标系的时候用到。

Extinsion

用于扩展要素源中的一个要素类,为此要素类增加额外的属性,目前共支持两种扩展:联接和计算属性。

106 要素源定义的一些主要元素

 

XML Schema of Feature Source Definition

1014 要素源的XML模式

下面的XML定义了一个SHP文件类型的要素源,“Provider”元素用于指定FDO Provider的类型和版本号。由于MapGuide总是忽略FDO Provider的版本号,使用当前安装在MapGuide中的FDO Provider,所以在下面的要素源定义中也可以将“Autodesk.Shp.3.4”替换为“Autodesk.Shp”。

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

<FeatureSource version="1.0.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance "

xsi:noNamespaceSchemaLocation="FeatureSource-1.0.0.xsd">

  <Provider>OSGeo.SHP.3.4</Provider>

  <Parameter>

    <Name>DefaultFileLocation</Name>

    <Value>%MG_DATA_FILE_PATH%</Value>

  </Parameter>

</FeatureSource>

与其它类型的资源类系,要素源既资源库中,使用资源ID加以标识,资源ID使用如下格式的URL来指定要素源在资源库中的位置。

Library:://.../<featureSourceName>.FeatureSource

其中,“”表示要素源在资源库中的位置,“< featureSourceName >”为要素源的名称,“FeatureSource”表示资源类型为要素源,例如下面的URL是一个完整的要素源URL

Library://FeatureService/PointsMDB.FeatureSource

在要素服务中几乎所有方法的第一个参数要求传入一个MgResourceIdentifier对象,用于指定一个操作的要素源。

1.1.1      覆盖坐标系

调用方法MgGeometricPropertyDefinition::GetSpatialContextAssociation()可以得到某个要素类中要素所关联的空间上下文(Spatial Context),然后调用方法MgSpatialContextReader:: GetCoordinateSystem()MgSpatialContextReader::GetCoordinateSystemWkt()可以根据给定的空间上下文得到要素所使用的坐标系,所以默认情况下MapGuide会自动获取要素所关联的坐标系。但是,如果要素所使用的坐标系是未知的或错误的,那么我们就希望能够覆盖要素所关联的坐标系,要素源定义中的元素SupplementalSpatialContextInfo正是为了解决这样的问题,它的子元素Name用于指定一个需要覆盖坐标系的空间上下文,子元素CoordinateSystem用于指定覆盖后的坐标系。

假设栅格文件g-01.sid的坐标系是未知的,即它所关联的空间上下文“Default”中的坐标系名称和坐标系的WKT都为空,�

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值