-->

客服中心

联系手机:13968834878(吴老师)

发表QQ:4271308

编辑QQ:25786532

编辑邮箱:zjdxjt5@163.com

联系地址:浙江杭州萧山区金城路185号

本站介绍

“薪火传承 思源致远”,杭州茴香医药科技有限公司栉风沐雨,历经19个春秋,成为一所“综合性、研究型”的一流综合型写作机构,并向一流写作服务机构稳步迈进。“论文撰稿一流精华,论文发表独家优势”,本公司以“宁失万贯,不失诚信,仰不愧于天,俯不怍于地”为宗旨,以“按时是我们诚信基础,录用是我们工作目标”为己任,致力于探索学术领域,攀登学术高峰,满足客户需求,凭借拥有国内多所著名高校人才资源优势,撰稿修改文章已有31700多篇在SCI、权威期刊、核心期刊上发表...更多

基于SVG的地图服务系统的实现

2013-10-10 04:18 字体:   打印 收藏 

摘 要:所谓地图服务就是利用成熟的网络技术、通信技术、GIS(地理信息系统)技术,实现一种新的地图服务方式。本文介绍了SVG技术及如何在地图服务系统实现。

关键词:SVG;地图服务系统

  一.引言   SVG是可缩放矢量图(Scalable Vector Graphics)的简称,是一种采用XML来描述二维图形的语言,是基于XML的一个全新的标准开放的矢量图像和动画格式。SVG可以构造三种类型的图形对象:矢量图形、位图图象和文字。图形对象可以被组化、样式化、变形和重新组合,包括图象嵌套、变形处理、剪辑路径、Alpha蒙板、滤镜特效和模板对象。最关键的是:SVG完全用普通文本来描述。也就是说这是一种专门为网络而设计的、基于文本的图像格式。SVG是基于XML的言语,所以可扩展性很强,能够描述任意复杂的图像。SVG是设计与编程之间的桥梁,与传统的图像制作方法不同,SVG图形是由程序代码生成的,这种语言是基于XML的,因此它可以和W3C的其他标准(如CSS、DOM等)无缝集成。SVG不同于传统的二元(平面)图像和动画制作,它使用简单的一元(文本)语句完成矢量图像,具有超强交互性和超强显示效果等特点。SVG图像中的文字独立于图像,适合对精度要求极高的地图进行显示,并且可以编辑和查询地图中的文字,特别适用于网络速度较慢情况下的地理信息网络发布。   二、基于SVG技术的地图服务系统   地图服务系统涉及福建省各个城市的地图数据,除了提供地图服务中的位置标示、位置检索、公交乘车路线换乘、关注点周边信息查询等基本服务外,还包括基于GIS平台支持下的移动位置服务(LBS)业务。为实现较高的代码重用性,使系统有较高的稳定性,并考虑系统的可扩展性,地图服务系统采用SVG技术提供业务功能支持、以J2EE技术对远程访问控制。   系统基于J2EE结构,以Oracle Spatial为空间数据平台,以SVG作为地图图形数据和交互信息的载体,结合XML/XSL作为数据交换手段,通过ECMAScript脚本语言提供界面操纵能力,采用B/S架构,以Web应用方式实现主要的业务流程。   (一)客户端功能设计   客户端采用插件SVG的形式,由于目前主流浏览器还不支持SVG,因此要采用Adobe的SVG插件SVG Viewer3.0来对SVG文档进行操作。为了更好地满足地图服务系统的实际需求,该系统在客户端必须完成以下地图基本功能:   1、作为地图引擎的基本功能,提供基础地图的展现。   2、为最终用户提供方便的放大、缩小以及查看当前比例尺寸的功能。   3、提供非拖放方式的地图漫游功能,增加键盘支持。   4、提供快速的鼠标漫游地图功能。   5、提供用户在地图上测算路径距离的手段。   6、在用户多次缩放、查找等操作后,回到使用地图的初始化状态。   (二)服务器端功能设计   服务器端主要功能是接收客户端提出的请求并进行分析,从数据源服务器中提取符合请求的原始数据,并通过转换,转换为可解析的格式良好的数据文档。功能主要集中在Web服务器和应用程序服务器两个方面,它们是地图服务系统的核心,其主要作用是动态地检索和过滤地理空间数据和属性数据,为客户端地图动态交互提供数据源。服务器端需实现以下功能:   1、解析输入请求,并将请求分发到相对应的对象进行处理。   请求路由器分别实现如下方法:   doGet方法:解析用户的请求,根据请求的内容,将请求分发到相对应的对象进行处理。   doPost方法:解析用户的请求,并根据请求格式的不同区分为SOAP请求和普通的表单POST请求,最后将请求分发到相对应的对象进行处理。   2、从SuperMap Deskpro生成的工作空间文件中读取地图结构、地图显示风格等内容,用于支持SVG元素工厂和SVG组装器的工作。由格式解析器来负责处理由SuperMap Deskpro生成的地图工作空间SXW文件。   格式解析器必须完成如下工作:   根据传入的名称,读取对应的SXW文件并在内存中生成XML树;   接受检索请求,返回图层信息和图层显示风格信息   3、数据缓存器缓存用户调用请求产生的结果数据,并根据用户请求从Oracle数据库中的缓存数据存储表中直接读取数据。用于提高服务器性能。数据缓存器自行维护一块缓存数据,采用名称—内容方式存储数据。   4、生成对应数据库表的命名SVG元素,并以对象数组方式返回。用于支持SVG组装器。调用方传入数据库表名和命名方案,由SVG元素工厂完成如下工作:   根据表名称自动连接数据库,返回请求的数据记录   工厂根据记录中描述的数据类型生成相应的点、线、面、文本对象   工厂向格式解析器查询记录对应的显示风格,并设置到对象中;   工厂向调用方返回元素对象数组   5、根据请求生成对应的SVG文件。由SVG组装器完成如下的工作: