传统村落与Mic ros oft Virtua l Ea rth集成

2015-03-22 00:17李强山西省地图集编纂委员会办公室山西太原030002
经纬天地 2015年3期
关键词:数据类型调用村落

□李强(山西省地图集编纂委员会办公室,山西太原030002)

传统村落与Mic ros oft Virtua l Ea rth集成

□李强
(山西省地图集编纂委员会办公室,山西太原030002)

主要论述了如何通过利用SQL Server 2008对地理空间的支持,将山西省传统村落的位置等信息集成到Microsoft Virtual Earth上,让人们对山西的传统村落有一定的了解。

传统村落;microsoft virtual earth集成

0.引言

传统村落是指聚居年代久远,拥有丰富的物质和非物质形态文化遗产资源,并具有历史、文化、科学、艺术、社会和经济价值的村落。近年来,在城镇化的进程中,大量的历史文化遗迹已经荡然无存,古村落作为一个保护相对完整的历史载体,是难能可贵的宝贵资源。

山西省是一个历史悠久,传统村落保存现状比较好的省份,通过在互联网上将山西省的传统村落以文字、图片、视频等形式展现给全世界的人们,让大家对山西省的传统村落文化有更进一步的了解的同时,对山西省传统村落的保护也起到一定的积极作用。下面仅就传统村落的位置及相关信息与Microsoft Virtual Earth集成进行程序实现。

地理空间支持是对 Microsoft SQL Server 2008中核心数据库引擎的一个强大扩展,允许使用新的geometry和geography数据类型来存储和管理形状、大小和位置,并具有计算面积、距离和交点等功能。通过利用SQL Server 2008中的这一新支持将山西省传统村落的相关信息整合到数据库应用程序中,在Microsoft Virtual Earth中展示山西省传统村落的相关信息。

1.程序设计架构

SQL Server 2008中的地理空间支持是专门设计用来支持在数据库中快速开发空间功能,引

入了两种新的数据类型来处理空间数据,geometry数据类型用来存储和处理采用平面模型的空间数据,geography数据类型用来存储和处理大地测量模型。在传统村落与Microsoft Virtual Earth集成的过程中,使用geography类型存储山西省传统村落的位置,通过选择传统村落及其位置,然后提取每个位置的经、纬度值,构建一个Microsoft Virtual Earth mash-up。具体流程如图所示。

2.创建存储传统村落位置及相关信息的数据库

首先创建一个名为MyDB的空间数据库,然后创建一个带有geography列的CTcunluo表和相关的存储过程,用于存储传统村落的位置、名称、图片、文字、视频等信息和传统村落信息的入库及提取。

在ArcGIS中,根据相关的资料,将山西省传统村落的位置信息坐标转换成Microsoft Virtual Earth的经纬度坐标,通过Create Feature to X,Y命令得到传统村落的地理坐标数据,用insert into命令将村落的地理坐标及相关信息填充到CTcunluo表中。

创建一个存储过程来获取所有的传统村落的位置及相关信息

3.用地理数据创建VirtualEarth mash-up

创建了数据库后,就可以创建 Virtual Earth mash-up。启动Visual Studio 2010,创建名为CTVirtualEarth的Visual C#“ASP.NET Web应用程序”项目,将山西省传统村落的坐标放置在Virtual Earth地图的顶部,将数据库中传统村落的位置显示为地图上的图标。

在Default.aspx中,用地理数据创建Virtual Earth mash-up

在这个网页使用“异步JavaScript和XML”(AJAX)呈现Virtual Earth地图,在地图上标绘

了每个传统村落的图标。所有服务调用都由客户端浏览器直接发出。关于ScriptManager元素,所有支持AJAX的网页都需要ScriptManager元素,在ScriptManager元素的内部,该网页声明了两个服务引用:第一个指向CTcunluoQueryService. asmx,即将创建的Web服务,用来调用存储过程以获取传统村落的位置及相关信息;第二个引用指向Microsoft Virtual Earth Web服务,引用一个应用程序接口(API),在任意网页上呈现交互式地图。

4.创建从数据库中提取传统村落的位置及相关信息的Web服务

在解决方案资源管理器中的项目CTVirtualEarth下添加一个“Web服务”,用来连接数据库及从数据库中提取传统村落的相关信息,命名为CTcunluoQueryService.asmx。

在集成的过程中,需要将数据库中geography数据类型的经纬度坐标转换到开发环境所能认识的信息,因此,创建一个指向Microsoft.Sqlserver.Type的程序集的引用,通过GetCTcunluo方法从geography类型的cunluo列中提取经纬度,使用Microsoft.Sqlserver.Type命名空间中定义的类SqlGeography来处理SQL Server中的geography数据类型。

在创建CTcunluoQueryService.asmx Web服务的同时需创建CTcunluos类,用来保存传统村落的相关信息。

在打开了与数据库的连接后,GetCTcunluo方法方法准备了SqlCommand对象,以调用数据库中的GetCTcunluo存储过程,然后调用ExecuteReader方法,以获得返回结果SqlDataReader对象,循环遍历此存储过程返回的读取器中的所有数据行,将CTcunluos对象添加到被返回给调用程序的泛型List〈CTcunluos〉对象,将传统村落的信息在客户端浏览的时候显示出来。

5.结束语

将山西省传统村落及其相关信息或者其他类型的专题内容集成到某些大型网站Web地图上,利用现有Web地图的地理数据和其丰富强大的操作功能,根据自己的实际需要将专题内容集成上去,将Web地图服务和专题内容服务分开进行调用,既可以提高浏览的速度,又可以根据实际需要随时更新专题内容数据库,提供最新的形式多样的专题内容服务。将传统村落与Microsoft Virtual Earth集成这一方法不仅为更多的人了解山西省传统村落信息提供一条新的途径,而且为我们在更新、使用专题数据库方面提出了新的思考。

【1】贾洪峰.SQL Server 2008程序设计[M].北京∶清华大学出版社,2010.

【2】马振晗.任鸿,高宇辉.SQL Server 2008宝典[M].北京∶清华大学出版社,2011.

【3】郭玲.SQL Server 2008数据库技术与应用[M].北京∶中国电力出版社,2011.

【4】张克权.黄仁涛.专题地图编制[M].北京∶测绘出版社,1982.

TP391 文献识别码 B

2095-7319(2015)03-0043-05

李强(1976—),男,本科,工程师,1999年毕业于武汉测绘科技大学,主要从事地图制图,GIS开发,数据库架构建设、应用开发等工作。

猜你喜欢
数据类型调用村落
详谈Java中的基本数据类型与引用数据类型
如何理解数据结构中的抽象数据类型
核电项目物项调用管理的应用研究
油画《村落》
“共享村落”:乡村新的入住方式
“共享村落”:拿什么让人魂牵梦绕
LabWindows/CVI下基于ActiveX技术的Excel调用
基于SeisBase模型的地震勘探成果数据管理系统设计
基于系统调用的恶意软件检测技术研究
范畴数据类型上的子类型*