基于互联网的地图标注系统设计与实现--LHL.docx

上传人:飞****2 文档编号:14983972 上传时间:2022-05-10 格式:DOCX 页数:6 大小:353.34KB
返回 下载 相关 举报
基于互联网的地图标注系统设计与实现--LHL.docx_第1页
第1页 / 共6页
基于互联网的地图标注系统设计与实现--LHL.docx_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《基于互联网的地图标注系统设计与实现--LHL.docx》由会员分享,可在线阅读,更多相关《基于互联网的地图标注系统设计与实现--LHL.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上基于互联网的地图标注系统设计与实现段克敏1 李宏利1 邰晓峰2(1. 北京长地万方科技有限公司,北京 ;2. 广东融讯信息科技有限公司,广州 )摘要:基于互联网的地图标注系统涉及到点、线和面的标注,对解决地图数据生产所面临的现势性、完备性、正确性以及准确性问题具有积极的意义。系统是在Oracle数据库、POI搜索引擎和瓦片地图数据服务的基础上,采用Ajax技术、NHibernate技术设计开发而成的,文章给出了系统的设计和实现。关键词:地图标注; Ajax; NHibernateDesign and Implementation of Map LabelSystem

2、Based on InternetAbstract:Map Label System Based on Internet involves label point、label line and label polygon, which is positive to deal with the problems of untimely、incomplete、incorrect and inaccurate that is come across in the process of electronic map data production. The development of this sy

3、stem is based on the Oracle Database、the Search Engine of POI and Tilt Map, and using the technology of Ajax and NHibernate. This paper mainly discusses the design and the application.Key words: Map Label; Ajax; NHibernate作者简介:段克敏 (1976 ) ,男,陕西咸阳人,高级工程师,学士,1999年毕业于浙江大学地球科学专业,主要从事海量空间数据处理、GIS系统集成方面的工

4、作。专心-专注-专业0 引言随着基础设施建设以及城镇化的快速发展,地理信息也随之在不断变化,地物的形态和功能都在不断地发生着变化。从而使地图的现势性、完备性、正确性以及准确性受到了极大的影响,引起人们衣食住行的不便,传统的地图更新方式已很难满足人们的需要,并且在人力、物力、财力以及社会资源等方面的消耗也是非常巨大的。互联网给人们的生活带来了无法估量的便利,而且已非常普及,利用互联网机制,让合格的用户在互联网地图上标注身边所发生的地理变化是一种快捷有效的地理数据采集方式。本文结合Ajax和Nhibernate技术,将互联网地图以及地理数据采集结合在一起,设计和实现了该系统。1 Ajax+Nhib

5、ernate与网络地图Ajax是Asynchronous JavaScript + CSS + DOM + XML HttpRequest的略称1,是多种技术的综合,它使用XHTML和CSS标准化呈现,使用DOM实现动态显示和交互,使用XML和XSTL进行数据交换与处理,使用XMLHttpRequest对象进行异步数据读取,使用Javascript绑定和处理所有数据。介于浏览器和服务器之间,浏览器的用户接口与服务器之间的交换全部是通过Ajax进行的。NHibernate是类似于Hibernate的一个面向.NET环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relatio

6、nal mapping (ORM)技术用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。NHibernate不仅仅管理.NET类到数据库表的映射(包括.NET数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和ADO.NET处理数据的时间2。基于互联网的地图也称为网络地图。从广义上来说,网络地图也是一种电子地图,是在计算机屏幕上显示、阅读和使用的,因此具有电子地图的一般特点,即动态性、交互性等特点3。在网络地图上,普通用户可以创建地图,标注个性化的地标,让被动的“地图用户”转变为主动的“内容提供者”,不但提高了地图网站的用户黏度,

7、还把地图网站变成了一个社会化网络平台。使用Ajax和NHibernate技术进行基于互联网地图的标注系统开发,综合Ajax的异步数据请求以及NHibernate的对象的持久化以及方便的数据获取功能,使得用户可以方便的浏览地图,同时也可以容易便捷的在客户端地图浏览过程中标注和保存自己关注的POI或者道路等等地理信息。两种技术的信息请求响应机制如图1。图1 Ajax & NHibernate技请求响应机制2系统的设计2.1系统的体系结构设计地图标注系统采用层次架构,体系结构如图2,分别是(1)系统的表示层即Web页面表示层。(2)系统的业务逻辑层(BLL)即系统的业务逻辑分析。(3)数据服务层(D

8、AL)。三个部分,具体为“浏览器/Web服务器/数据库服务器” 4。表示层,是地图标注系统的用户接口部分,担负着用户与系统之间的对话功能。它用于检查用户从键盘等输入的数据,检查的内容只限于数据的形式类型和取值范围,不包括有关业务本身的处理逻辑,显示输出的查询、处理结果。业务逻辑层,是根据表示层发送来的请求条件,根据地图标注系统本身的业务流程逻辑进行分析、检索以及处理从数据层获取的必要的业务数据,然后把相应的业务处理结果分别存入后台数据库以及反馈到客户请求端。数据访问层在本系统中是利用Nhibernate提供的对象关系映射框架ORM将内存对象和关系数据进行相互映射,进行对象的持久化。另外就是PO

9、I数据的搜索引擎技术可以使POI数据的查询迅速高效且准确;栅格引擎使背景地图瓦片数据能够快速显示和浏览,操作便捷。图2 地图标注系统体系结构图 系统后台数据主要有:空间数据、属性数据、瓦片数据和系统数据。2.2模块设计图3 标注系统软件包模块图系统的模块结构是根据系统的体系结构设计而来的,总的模块结构如图3。大体为客户端UI模块;业务逻辑层模块;数据访问层模块;数据持久层模块。地图标注系统的层次架构具体为“浏览器/Web服务器/数据服务器”。其中的数据存储和传递使用的是Model类,Model类中定义了一个实体(例如POI、道路、用户、POI统计、道路统计等等)的所有属性变量,这些都是用来传递

10、信息,并不对信息进行处理和操作。部分实体是通过NHibernate对象关系映射框架(ORM),把业务实体在内存中的对象持久化到关系数据库中。ORM机制的核心是一个XML文件,命名为后缀为.hbm.xml的文件,这个文件描述了数据库模式和Model类的具体绑定。2.3系统功能设计地图标注系统的用户在标注POI或者道路的时候,首先通过POI搜索引擎检索,看数据库中有没有自己所关心的POI数据或者道路数据,如果检索没有,那么就在浏览器地图上找相应的位置,进行标注和属性信息的录入,最后保存标注结果。对于标注的数据,有专人要对每天所标注的数据进行涉密点的检查,然后进行质量检查和审核,最后进行确认(一方面

11、是资料确认,一方面可以提供给外业团队去现场实际确认),将新的经过确认的有效数据和原有的母库数据进行融合,作为新的母库数据。标注系统的功能主要有:(1) 系统表示层功能主要有:系统的地图显示、用户的POI标注界面、用户的道路标注界面、用户的建筑物标注界面、POI数据的质量检查以及审核界面、道路数据的质量检查以及审核界面、POI数据的编辑修改界面、道路数据的编辑修改界面、任务分配界面、系统的用户管理界面、系统的权限管理界面、数据的导出界面等等。(2) 系统业务逻辑层功能主要有:POI搜索引擎、栅格数据引擎、周围区域检索、POI数据的增加修改删除、道路数据的增加修改删除、地理坐标和显示屏幕及相应图片

12、像素之间关系和转换、系统用户管理、系统权限管理、系统的任务分配管理、用户的作业区域管理、系统的数据管理等等。(3) 系统数据访问层功能主要有:根据业务逻辑层的要求组织声称响应的HQL语句,检索并返回业务逻辑层所需要的数据。另外对数据进行插入、更新、删除等操作。(4) 数据库中数据的导入导出功能。2.4系统数据库设计2.4.1系统数据组成系统数据主要由瓦片数据、地理数据(属性数据和空间数据)以及系统的管理数据三部分构成,分别如下:瓦片数据是地图显示的背景图片,每片数据大小是256*256个像素,分十五个显示等级,主要表示内容是行政区划水系绿地铁路道路居民地信息点地名店等。不同等级的瓦片数据表示的

13、内容依显示比例尺而定,符合国家基本比例尺地图要素的选取和综合规则。地理数据是系统用的矢量型检索数据,主要包括POI信息点数据、道路数据、行政区划数据等。系统数据:主要有用户管理、用户详细信息、角色信息、权限信息、菜单管理信息、权限管理信息、质量审核、任务分配、上传图片管理信息等。2.4.2数据的物理组织和逻辑设计瓦片数据是栅格图片数据,根据比例尺的不同设定了15个等级,每个等级根据需要选用不同的矢量数据图层进行组合。瓦片数据是以栅格图片的文件形式存放的,以文件夹的方式组织数据的,文件夹的命名方式是根据等级级别、图片左下角的经纬度等方式来命名的,图片文件的命名方式是根据图片的经纬度来计算命名的。

14、地理数据和系统数据是存放在Oracle 10gR2数据库中的。地理数据中的空间数据在数据库中是利用OracleSpatial的SDO_Geometry数据类型存放的,这样便于空间数据和属性数据存放在同一条记录中也避免了利用BLOB数据类型存放坐标序列。同时也可以利用OracleSpatial提供的空间数据操作函数快捷地完成所需的空间操作。系统数据是以关系表的形式存储。图4 系统数据库的部分逻辑结构图3系统的实现3.1开发平台与运行环境开发语言:C#.Net、JavaScript、PL/SQL。编程工具:VisualStudio2005、PLSQL Developer。服务器环境:64位Wind

15、ows 2003 Server、64位Oracle10gR2。3.2客户端的实现在客户端的开发主要是Web UI页面的开发。使用HTML语言设计和构建网页布局,设计用户使用的方式以及返回内容如何展现给终端用户。利用JavaScript脚本语言编写函数check(),动态检查用户输入的规范性检查,以及局部的动态调用和请求。利用CSS定义网页的布局、字体、颜色背景等等,使网页的内容和表现分开,减少代码量,使网页简练丰富,增加网页的浏览速度。标注系统中主要的功能就是POI点数据的增加、修改和删除,以及道路数据的增加、修改和删除,这些功能的实现都是依靠背景地图作为参照的,所以背景地图是显示客户端开发的

16、重要部分,背景地图是显示在DIV容器中的。function init(type) Maplet = new RMap(0,0,800,450,latt,lonn,9,IMG_SERVER+/rt/mapdb/);document.getElementById(mapdiv).appendChild(Maplet.get();toolbox=Maplet.getToolBox(JS_SERVER+/rapi/rwidget/rmap/toolbox/);toolbox.addCross();toolbox.addZoomBar();toolbox.addPan();toolbox.addScal

17、e();Maplet.show();Init()函数初始化地图,RMap()函数是栅格引擎中重要的一个地图函数,栅格引擎是使用JavaScript开发而成的调用和操作瓦片数据的js文件模块。增加POI点的JavaScript代码:Maplet.clearMarkers();poiPointMarker=Maplet.addBalloonMarker(new parent.RLatLng(poiLat,poiLng), 1001, /img/mapMarker.gif, poi,null,null);Maplet.refreshMarkers();删除浏览器中地图上的POI点代码:Maplet.

18、clearMarkers();document.getElementById(txtLat).value =0;document.getElementById(txtLng).value = 0;document.getElementById(control_ddlProvince).value=-1;document.getElementById(control_ddlCity).style.display=none; document.getElementById(control_ddlCode).style.display=none; poiPointMarker=null; 道路数据的

19、操作实现代码也是使用JavaScript调用栅格引擎中相应的函数实现的。系统的主要界面如下图5 系统界面图其它的页面POI变更标注、POI编辑、道路变更标注、道路编辑、POI审核、道路审核、信息安全审核、数据导出(Excel格式和mdb格式)、用户管理、任务管理、密码管理、日志管理等页面的开发方式都是采用JavaScript、HTML和CSS技术开发而成的。页面开发中很多功能使用了Ajax技术,例如显示周围POI功能,在AddPOI.aspx页面中的代码为:function searchAroundPoi() /此处省略代码/Ajax技术listScript1.src=/AjaxServer/

20、GetPagePoislistByAround.aspx?districtId=+districtId+&start=+start+&count=+count+&LLat=+Maplet.lat+&LLng=+Maplet.lng; /此处省略代码 在Ajax服务的GetPagePoislistByAround.aspx页面中调用BLL模块中的GetPoisByAround()函数返回检索周围信息点的字符类型的结果,然后再返回给AddPOI.aspx页面,并显示相应结果。3.3服务器端的实现服务器端的开发主要是BLL、DAL以及Nhibernate持久化三方面的开发。BLL层接收来自WebUI

21、的信息,并对信息或者状态进行判断,然后做出相应的策略和操作。例如显示周围信息点功能在BLL中调用的函数如下:public string GetPoisByAround() /此处代码省略 Com.Ritu.POI.BLL.PoiManager poiManager=new pm.Ritu.POI.BLL.PoiManager(); IList pois = null; pois= poiManager.GetBasicListByAround(lat,lng,start,count); /此处代码省略BLL模块中的代码:public IList GetBasicListByAround(dou

22、ble lat, double lng, int start, int count) Return mDal.GetBasicListByAround(); DAL模块中和数据库相关的基本采用Nhibernate技术,所以相应的调用代码:public int GetCountBasicByAround(double Lat, double Lng) /Nhibernate技术 ISession session = SessionFactory.GetSession(); StringBuilder sbHql = new StringBuilder(); sbHql.Append(select

23、 count(*) from PoiEntity poi where 1=1 ); /此处代码省略 double TmpFloat = 50 / .71; sbHql.Append(and poi.Latitude = :MaxLat ); /此处代码省略 IQuery query = session.CreateQuery(sbHql.ToString(); query.SetDouble(MaxLat, MMaxLat);/此处代码省略IList list = query.List();/此处代码省略return Convert.ToInt32(list0);/此处代码省略3.4系统其它功

24、能的实现标注系统的POI搜索引擎是比较独立的软件部分,是在全文检索引擎Lucene开源框架的基础上利用VC开发而成的,具有分词、索引、查询功能。索引的建立是根据POI的行政区划ID、POI名称等属性进行的,搜索引擎是单独布署在服务器上的,标注系统调用搜索引擎提供的服务。搜索引擎根据系统提供的条件(名称等)进行检索,返回给系统一串POI的ID序列供系统进行后续小范围的快速检索。标注系统所使用的栅格引擎也是一块比较独立的功能模块,是利用JavaScript结合Ajax技术开发而成的一个js函数包,发挥Ajax异步传输机制, 实现快速的地图显示。在标注系统中,浏览器的地图显示部分是一个DIV元素。在

25、标注系统中,该功能模块直接嵌入在系统的源码中间。4 结束语 基于互联网的标注系统可以方便有效的解决地图数据生产中遇到的现势性、完备性、正确性以及准确性得不到满足的问题,本文采用Ajax和Nhibernate技术设计和实现了互联网地图的标注系统,系统已经投入使用,并且在实际应用中为地图数据的生产采集提供了一种高效实用的可靠途径。参考文献1 半场方人(日)JavaScript & Dynamic HTML 语法词典M 中国青年电子出版社,20092 Pierre Henri Kuate,Tobin Harris,Christian Bauer,Gavin KingNHibernate in ActionMManning20083 阚映红,车森,肖强不同媒介上地图特点和制作技术研究J测绘与空间地理信息, 2010(4):170-1724 张友生系统分析师教程M清华大学出版社2010

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁