



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用外部数据库中的属性值标注要素空间要素的属性信息通常是存储在一个外部的数据库中。例如,地方政府一般都会以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定位和配置驱动程序所需要的信息。各种数据库的连接字符串可以在查询。数据库连接字符串OraclePROVIDER=OraOLEDB.Oracle;Data Source=aDatabaseName;UserID=aUserName; Password=aPasswordMySQLdriver=MySQL ODBC 3.51 Driver; erver=aServerName;Database=aDatabaseName;uid=aUserName; PWD=aPasswordMicrosoft AccessPROVIDER=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属性。这种方法的一个优点就是迅速,只需几秒钟就可以标注上百个多边形(尽管标注的速度与PC机性能及网络速度有关)。这种方法的唯一缺点就是它要创建、打开再关闭数据库连接,并且为地图上的每一个可见要素做查询。需要做很多要素的标注时,这样的动作会使处理速度减慢,增加网络流量。解决此问题的一个方法就是设置可见比例尺(Scale Range)。在LayerProperties对话框的Label标签里,点击Scale Range按钮,定义标注的可见比例尺范围。Function FindLabel ( PIN )Dim strPrclQry, strInfostrPrclQry = SELECT OWNER_NAME FROM aTABLE WHERE PIN = & PIN & Dim ADOConnset ADOConn = createobject(ADODB.Connection)Dim rsPrclset rsPrcl = createObject(ADODB.Recordset) ADOConn.Open PROVIDER=MSDAORA;Data Source=aDatabaseService;User ID=aUserName;Password=aPasswordADOConn.CursorLocation = 3rsPrcl.Open strPrclQry, ADOConn, 3, 1, 1如果没有找到记录,则返回空字符串如果找到多于一条的记录,则通过来暗示含有多条业主信息可以做循环,直到标注出所有的业主信息Select Case rsPrcl.RecordCountCase -1, 0strInfo = Case 1只读取第一条记录strInfo = trim(rsPrcl.Fields(OWNER_NAME).Value & ) 在空值的情况下将出错Case ElsestrInfo = rsPrcl.Fields(OWNER_NAME).Value & End Selec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业互联网平台5G模组市场应用适配性趋势研究报告
- 2025年工业互联网平台数据备份与恢复策略与云服务的融合报告
- 2025版市政基础设施土石方开挖施工管理合同范本
- 2025年城市景观策划咨询服务合同
- 2025版智能电网建设运营合作合同模板
- 2025年度教育课程定制合同买卖合同书
- 2025第7章生物质能工程项目合同管理方案
- 2025年度电竞主题咖啡馆经营转让及赛事举办权合作协议
- 2025版煤炭资源探矿权承包开发合同
- 2025年度残障人士就业促进专项用工附加协议书模板
- 医药公司廉政管理制度
- 2025届黄冈教育共同体高三4月联合考试语文试卷含答案
- 离婚车辆转让协议书
- 电影投资意向协议书
- 2025-2030妇幼保健产业规划专项研究报告
- 《慢性肾病治疗策略》课件
- 统编版(2025年春季)七年级下册《道德与法治》期末复习知识点提纲填空练习版(含答案)
- 2025-2030中国宠物可穿戴设备行业市场发展趋势与前景展望战略研究报告
- 2025至2030中国瑶族药浴行业前景调研与投资价值评估研究报告
- 中国超级电容器隔膜纸行业市场竞争态势及发展趋向研判报告
- 施工现场临时用电方案-顶管-
评论
0/150
提交评论