- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用外部数据库中的属性值标注要素
空间要素的属性信息通常是存储在一个外部的数据库中。例如,地方政府一般都会以shapefile、geodatabase或者其他GIS的格式存储宗地信息,而宗地的业主信息则可能存储在土地管理部门的一个数据库中。为了打印一幅印有业主姓名的宗地地图,我们需要将带有业主信息的表格从外部的数据库中连接(join)到宗地这个要素类上。
当空间数据与非空间数据是一对一或多对一时,上述操作能顺利进行。但是,如果空间数据与属性数据是一对多或多对多时,空间要素则会被标注一个值,而不是多个值。多个单位共用的宗地就是这一弊病的好例子:这块宗地可以用一个单独的多边形来表示,但是在税务数据库中,这块宗地上的每一个单位都会相应有一条记录。
使用ArcMap中的高级标注选项可以轻松地解决这个问题。通过ArcMap中的VBScript解析器,我们可以编写VBScript代码来自定义标注内容(ArcMap也支持JScript)。可以利用ActiveX Data Objects(ADO)访问外部数据库,以获取属性信息。ADO是建立在OLE DB基础上的基于对象的高层数据接口,能够访问任何类型的数据(可以是相关数据库,也可以是外部数据库、文件夹、文件甚至e-mail信息)。
在编写代码之前,有两件重要的事必须做。在客户端PC机上必须安装适当的数据库连接驱动程序。对于大多数的Windows PC机,Microsoft Access和Microsoft SQL Server的驱动程序都默认安装了。Oracle或者MySQL等其他数据库的专用驱动程序可以从软件提供商的网站下载。数据库连接字符串(ConnectionString)是ADO最重要的属性,它包含了ADO定位和配置驱动程序所需要的信息。各种数据库的连接字符串可以在 查询。
数据库
连接字符串
Oracle
PROVIDER=OraOLEDB.Oracle;Data Source=aDatabaseName;UserID=aUserName; Password=aPassword
MySQL
driver={MySQL ODBC 3.51 Driver}; erver=aServerName;Database=aDatabaseName;uid=aUserName; PWD=aPassword
Microsoft Access
PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source=c:\myDatabase. mdb;
Microsoft SQL Server(using Windows NTIntegrated security)
Provider=SQLOLEDB; Integrated Security=SSPI; Persist Security Info=False; Initial Catalog=aDatabaseName; DataSource=aServerName
表1 部分数据库的典型连接字符串
在VBScript中,创建任何对象都要使用CreateObject()函数,并且要含有正确库名和对象名(例如:ADODB.Connection)。只要创建了Connection和RecordSet 对象,就可以使用正确的连接字符串打开数据库连接,通过一个正确的SQL语句打开RecordSet,使用带有字段名的RecordSet对象的Value属性获取数据。当获取数据之后,必须确保RecordSet和Connection对象关闭并且置空。
安装完适当的驱动程序,并且找到正确的连接字符串之后,可以按下列步骤,利用外部数据库中的属性信息对地图进行标注。
1. 打开ArcMap,添加需要标注的图层。
2. 点击该图层属性(layer properties)对话框中的标注(label)标签,点击Expression按钮。
3. 在Label Expression对话框中,选中Advanced复选框,在Expression框里即可见FindLabel()函数的桩代码。
4. 将光标移至FindLabel后面的括号里,双击需要使用的字段的字段名。
5. 在Expression表达式里书写表2所示的VBScript代码。
6. 通过给函数名赋值返回字符串(例如:FindLabel = aString)。
图1 标注表达式对话框
点击Verify按钮,验证代码是否正确。如果代码无误,ArcMap将显示标注的样例。
使用这种方法是十分便捷的,业主信息是存储在一个外部数据库中,而宗地分布信息则存储在一个personal geodatabase里,并且只含有一个ID属性。这种方法的一个优点就是迅速,只需几秒钟就可以标注上百个多边形(尽管标注的速度与
您可能关注的文档
- 传感器在物联网中的应用与发展.pdf
- 传感器标定原则.ppt
- 传热系数的测定关联式.ppt
- 传统卷轴书画裱件的品评.pdf
- 传说粽子是乡民于屈原投江后.ppt
- 传输质量与距离时间等因素的关系.ppt
- 伪距观测方程.ppt
- 估计回归系数最常用的方法之一就是普通最小平方ordinaryleast.ppt
- 伺服运动控制系统的结构及应用.ppt
- 但人均占有量很少2.ppt
- 《GB/T 22838.3-2025卷烟和滤棒物理性能的测定 第3部分:圆周 非接触光学法》.pdf
- 中国国家标准 GB/T 7410.1-2025搪瓷制品和瓷釉 术语 第1部分:术语和定义.pdf
- 《GB/T 7410.1-2025搪瓷制品和瓷釉 术语 第1部分:术语和定义》.pdf
- GB/T 7410.1-2025搪瓷制品和瓷釉 术语 第1部分:术语和定义.pdf
- 《GB/T 32151.54-2025温室气体排放核算与报告要求 第54部分:工业硫酸企业》.pdf
- GB/T 32151.54-2025温室气体排放核算与报告要求 第54部分:工业硫酸企业.pdf
- 中国国家标准 GB/T 32151.54-2025温室气体排放核算与报告要求 第54部分:工业硫酸企业.pdf
- 中国国家标准 GB/T 29152-2025垃圾焚烧尾气处理设备.pdf
- 《T/CHTS 10170-2024半开级配超薄磨耗层技术指南》.pdf
- T/CHTS 10170-2024半开级配超薄磨耗层技术指南.pdf
原创力文档


文档评论(0)