MapGuide GIS系统求助,用FDO连接SDF文件报一个错误,几天都没找到解决办法

到目前网上有关GIS系统资料很少,而WebGIS这块,不各道大家都用什么,我这里用的是MapGuide 做GIS的显现,后台用的MapWindow 做图层,及管道网的搭建,这是将用页面显示的地理管道信息,

现在碰到一个问题:  用FDO连接SDF文件报一个错误,求助一些GIS高手们,

整理效果是这样的,在这里也将会在博客上发一些有关GIS系统项目中相关技术点,及问题点文章,给大家

1.1.1. FDO的数据结构

Feature(要素): 要素是对现实世界物体的抽象。一个要素直接或间接的关联地理位置信息。一个空间要素具有一个或多个几何属性,比如,一条道路可以抽象为一条曲线,一个消防栓可以抽象为一个点;非空间要素没有几何信息,但它与一个具有几何信息的空间要素相关联,比如一条道路可以包含一个人行道,人行道就是没有几何信息的非空间要素

Schema(数据框架):Schema是对用于建模现实世界的数据结构的描述。Schema不是数据本身,而是描述数据的数据(即元数据)。例如,一个用于建模城市道路的Schema包含了一个道路类,一个道路类又包含了“名称”属性等,对道路的定义和其他相关的类构成了该Schema。实际应用中,可以将Schema理解为一个与要素相关联的表结构。

FeatureClass(要素类):同类要素的集合构成一个要素类。一个要素类具有相同的Schema,它包含一个名称和一系列属性的定义,包含0个或多个几何属性

Property(属性):一个要素类包含若干属性的定义。每条属性都有特定的类型,可以是一个简单类型,如string, double等,也可以是一个复杂类型,如地址(地址本身又由一系属性构成比如街名,门牌号等)。

Data Property(数据属性):数据属性是非空间属性。一条数据属性的值可以是以下类型:boolean, byte, date/time, decimal, single, double, Int16, Int32, Int64, string, binary large object,  character large object等。

Geometric Property(几何属性):几何属性是一个对象类型,描述要素的几何信息。一个几何属性可以限制为只使用一种形状,如点,也可以使用多种维数形状,如一个对象是点状,而另一个对象是线状。形状的组合也是允许的。默认的几何属性可以表示点、线、面、体中的任何一种。

一个几何属性只可以有一种坐标维数。默认为XY。另有Z值和M值可选。

Geometry(几何形状):几何形状由一系列XY或XYZ坐标点定义。几何形状具体有以下几种类型:

  • Point 点
  • 线 (一个或多个连接起来的线段, 由一系列顶点的位置定义)
  • 曲线 (一个互相连接起来的线段和圆弧段的集合)
  • 多边形 (一个具有外边界的表面,可以有0个或多个内环; 内环是闭合的, 连接起来的线段, 由一系列顶点的位置定义)
  • 曲线多边形 (一个具有外边界的表面,可以有0个或多个内环; 内环是闭合的, 连接起来的曲线)
  • 多重点 (多个点,可以是不相交的)
  • 多重线 (多条线,可以是不相交的)
  • 多重曲线(多个曲线, 可以是不相交的)
  • 多重多边线 (多个多边形, 可以是不相交的)
  • 多重曲线多边形 (多个曲线多边形,可以是不相交的)
  • 多重几何形状 (包含多种几何形状的集合, 可以是不相交的)

目前FDO还不支持“实体”类型(即三维形状)。

FdoIConnection::GetGeometryCapabilities()可以用来查询特定的数据提供程序是否支持指定的形状类型和坐标维数。

Object Property(对象属性):对象属性是一种复杂的属性类型,可以包含若干个基本类型或对象类型。如前面提到的地址类型就是一个复杂类型。

Spatial Context(空间参考):空间参考是用于描述要素集合的基本元数据和参数信息。空间参考一般包括坐标系的定义,椭球参数,单位,空间范围等。

Data Store(数据存储):数据存储是一个存放对象的容器。数据存储可以包含具有一种Schma或多种Schma的数据(与具体的provider有关)。

1.1.2. FDO数据操作

Command(命令):FDO使用命令的方式对要素进行各种操作,包括访问、更新、查询、分析等。每一个命令对象执行一种特定类型的操作。数据提供程序可以对现有的命令进行扩展并可以增加针对该Provider的新命令。命令执行针对一个特定的连接,也可以被包含在一个事务中处理。

Expression(表达式):表达式用于构造一个过滤器。一个表达式可以是一个过滤器或者一个大表达式的从句。

Filter(过滤器):过滤器用于程序识别数据存储中对象的子集。例如,可以用一个过滤器识别出200米范围内的所有包含2个干球道的道路类型的要素,很多FDO命令使用过滤器来对特定的要素进行操作。

Locking(锁定):用户可以通过锁定排除其他用户对数据的使用,并对该数据进行更新。锁定分为事务锁定持续锁定事务锁定是临时的、只在事务范围内生效的锁定持续锁定一直保持锁定状态,直到用户解除锁定,或其他授权的用户解除锁定

Transaction(事务):事务使用一定的方式对数据进行更改。对数据存储的更改会被记录在事务的属性里。例如,原子属性表示所有更改是否发生。对数据存储来说,事务把一系列命令当作一个独立的,不可分割的(原子的)更改。所有的命令或者全部执行成功,或者全部取消。程序通过提交让一系列操作生效,或者通过回滚让一系列操作取消。数据存储会自动检测一个事务中执行失败的命令,并自动进行回滚操作。事务具有以下属性:

Atomic(原子的): 一个事务命令产生的所有更改是否发生。

Consistent(连续的):在保证系统设定参数稳定和其他数据完整性规则的前提下,事务使数据存储保持一个连续的状态,即每一步更改都对外可见。

Isolated(孤立的):事务提交前,被该用户所作的更改对其他用户不可见。

Durable(持久的):事务成功提交后,会被保存在硬盘上,无论程序损坏还是处理失败,所作更改都不会丢失。

时间: 2024-10-02 09:39:45

MapGuide GIS系统求助,用FDO连接SDF文件报一个错误,几天都没找到解决办法的相关文章

项目经验之:针对昨日FDO连接SDF文件报错,国个GIS论坛给出了一个思路.帮助我过关.

针对C#通过FDO连接SDF文件出现如下错误解决方案:  “外部组件发生异常” 在个遍国外论坛上看到这样一句话: 看到吗,跟我上面所发生的一个样错误的提示:那又如何解决呢,是什么原因呢?接下看专家的回复 可能是我们的FDO版本不合适,换成FDO3.3版本,好吧,我照着试了下,注意一定要将下面这几个DLL拷入你的编辑目录Bin\debug目录下\ 运行调试下看能否成功 看到了吗,通过. 总结什么原因呢??? 我后来又用FDO3.4,FDO3.5版本都试了下,但报了一个很特别的异常 “找不到指定的模

Navicat 连接MySQL数据库 报错2059 - authentication plugin 'caching_sha2_password'的解决办法

#在数据库的命令行中输入以下代码即可解决,密码必须要修改 可以再次执行将密码改回来. use mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; Navicat 连接MySQL数据库 报错2059 - authentication plugin 'caching_sha2_password'的解决办法 原文地址:https://www.cnblogs.com/liuha

C#使用oledb连接excel执行Insert Into语句出现“操作必须使用一个可更新的查询”的解决办法

我发生错误时的环境:Windows 7,Framework 4.0,Microsoft Office 2007,VS2010,c# WinForm: 部分代码: string strConn = "Provider=Microsoft.Ace.OleDb.12.0;Persist Security Info=False;" + "data source=" + @excelPath + ";Extended Properties='Excel 12.0;

[转]nf_conntrack: table full, dropping packet 连接跟踪表已满,开始丢包 的解决办法

nf_conntrack: table full, dropping packet  连接跟踪表已满,开始丢包 的解决办法 中午业务说机器不能登录,我通过USM管理界面登录单板的时候发现机器没有僵死,然后一看日志,g一下子就明白了 tail -2000 /var/log/messages Apr 10 12:48:35 bj-push-pushserver83 kernel: [95129.138804] __ratelimit: 16523 callbacks suppressed (“连接跟

连接VPN后,本机不能上互联网的解决办法

连接VPN后,本机不能上互联网的解决办法 宽带拨号上了网,正常. 再创建个VPN连接到公司网络,连接正常,可以PING通公司的服务器. 再上网,上不去了! 断开VPN,上网正常,搜索引擎一搜,都说要改一个VPN网络的配置,位置: VPN连接-->属性--网络--IPV4--属性--高级 默认时,“在远程网络上使用默认网关”是勾选上的. 按网上的说法,要去掉这个勾.照办. 再连接VPN,还是不能上网. 细看上网提示,是DNS地址找不到.看来按网上所说的是路由不对的说法靠不住,问题在DNS. 于是还

SQL 2005/2008 连接SQL 2000报18456错误

在看文章前,你先看看下面这两个问题,考考你对MSSMS工具的掌握情况: 1: SQL 2005/2008 能连接 SQL 2000数据库服务器吗? 2: SQL 2000 能连接SQL 2005/2008数据库服务器吗? 答案是都可以. 实验环境:本机Windows 7 专业版,安装有SQL 2005客户端和 SQL 2008客户端工具,采用Windows 身份认证方式连接公司一台数据库服务器(SQL 操作系统:Windows 2000 服务器,数据库版本:SQL2000 STD),报如下错误,

双系统(ubuntu、windows),删除ubuntu分区,进不去windows解决办法

最近人品有点差,接二连三从笔记本屏幕.开发板.再到台式机硬件坏了,再到自己安装不小心,安装失败了ubuntu(没有选择分区,让系统自己选择).然后自己直接把ubuntu分区删掉了,这下问题就来了,不能进入windows7.总结一句话,就是最近自己状态太差,老是处于游离状态,做事不够细心.希望明天开始,做事一步一个脚印,攒人品. 1.问题描述: 我的电脑是Win7和Ubuntu双系统,因为Ubuntu出了问题无法解决,所以最后决定重装Ubuntu,因此我回到Win7系统下,将Ubuntu的分区全部

联想EDU同传系统 版本7.5 7.6在机房中出现的一些故障和解决办法

1.7.5版本和7.6版本是不同的版本,7.6比7.5成熟点,7.5版本在同传时个别电脑会出现乱码, 这个技术客服说没碰到这种情况. 2.在同传系统升级到7.6版本时,在初始界面 点击同传时,个别机器是没法登陆到发射端的,必须先     初始化给它搞个分区,再让它进同传界面才可以. 3.初次使用7.6版本如果没有分组,那么是可以登录到发射端的.如果已经分组那就没法登录发射端, 必须把接收端的分组给清除掉. 但是在清除分组名点击确定时会提示密码不匹配,这个时候要原同传系统密码删掉置空,再删分组  

Matrix矩阵连接变换应用的一个错误

RectF rf = new RectF(100, 100, 300, 300); Matrix m = new Matrix(); float centerX = 500; float centerY = 500; float scale = 1.5f; m.preScale(scale, scale); m.mapRect(rf); float cx = rf.centerX(); float cy = rf.centerY(); m.postTranslate(centerX - cx,