`
jacally
  • 浏览: 772363 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

SVG中国 - 新一代web设计及互动媒体的革新

    博客分类:
  • SVG
阅读更多

http://www.chinasvg.com

http://www.adobe.com/svg/viewer/install/svgtest.html

用SVG技术实现基于Web的GIS
 

本文主要对基于SVG的WebGIS的客户端实现的一些基本知识及实现技术作一个简单介绍。

SVG是什么?Scalable Vector Graphics(简称SVG),是“可升级矢量图形”的意思。SVG是由W3C制定的基于可扩展标记语言(XML)来描述二维矢量图型的一个开放标准。SVG严格遵从XML语法,SVG并用文本格式的描述性语言来描述图像内容,因此SVG是一种和图像分辨率无关的矢量图形格式。
  SVG可以使你设计的网页可以更加精彩细致,使用简单的文本命令,SVG可实现色彩线性变化、路径、自定义字体、透明效果、滤镜效果等各式常见的图形图像效果。
  SVG具有以下优点:
  SVG是纯XML的,是一个开发标准。SVG不属于任何个体的专利,而是工业标准,通过协作共同开发的标准。因此SVG能够得到更迅速的开发和应用;
  SVG的图像文件可读,易于修改和编辑;
  SVG文件比JPEG和GIF更小压缩比更大;
  SVG是可以压缩的;
  SVG图像是可以任意无损缩放,并以任何分辨率高清晰打印;
  SVG与现有的WEB技术可以互相融合(如与HTML、GIF、JPEG、PNG、SMIL、ASP、JSP集成)。SVG的动态部分(包括时序控制和动画就是基于SMIL标准。SVG文件还可嵌入JavaScript脚本来控制SVG对象;
  SVG图形格式可以用来动态生成图形。SVG动态生成具有交互功能的地图,嵌入网页中,并显示给终端用户;
  SVG里的文字是可供选择和搜索的,所以SVG图形格式可以方便的建立文字索引,从而让SVG实现基于内容的图像搜索;
  SVG图形格式支持多种滤镜和特殊效果,SVG在不改变图像内容的前提下可以实现位图格式中类似文字阴影的效果;
  SVG面临的主要问题是与非开放式的Flash如何竞争以及SVG的本地运行环境的厂家支持程度。

  • 引言


  SVG(Scalable Vector Graphics)是一种基于XML 的用来描述二维矢量图形和矢量/点阵混合图形的置标语言,是一种全新的矢量图形规范。 SVG规范定义了SVG的特征、语法和显示效果,包括模块化的XML命名空间(namespace)和SVG文档对象模型(DOM)。 SVG的绘图可以通过动态和交互式方式进行,在实际操作中,则是以嵌入方式或脚本方式来实现的。SVG不仅提供超链接功能,还定义了丰富的事件。由于SVG支持脚本语言(script),可以通过Script编程,访问SVG DOM的元素和属性,即可响应特定的事件,从而提高了SVG的动态和交互性能。 SVG实现了图形、图象和文字的有机统一。 SVG除了支持HTML中常用的标记,如文本、图象、链接、交互性、CSS的使用、脚本(Script)外,还提供了大量针对图形、图象、动画的特定标记。这就为实现GIS提供了可能。

  作者根据实际工作需要,在Web浏览器中采用SVG及相关技术实现了Web的GIS管理系统(以下简称WebGIS),取得了很好的效果。此系统包括服务端及客户端的设计,服务器端出要处理数据的存储及数据的动态装载,客户端主要完成SVG数据的显示及交互。本文主要对基于SVG的WebGIS的客户端实现的一些基本知识及实现技术作一个简单介绍。

  • 基础知识


  SVG浏览插件

  要实现SVG图形的显示,必须要在客户端安装SVG浏览器,Adobe开发的SVG Viewer功能强大,显示效果好,是网络上使用最多的,其最新的版本是3.0。可以到Adobe的网站( http://www.adobe.com/svg/viewer/install/main.html)上去下载,为了保证中文能正确显示,请下载简体中文版本。下载后安装程序,第一次使用时回弹出用户许可信息,点击"接受"即可。

  在网页中嵌入SVG

  将实现基于浏览器的GIS系统,需要将SVG图形对象嵌入到网页中,使用如下HTML代码来实现:

xml 代码
  1. [code]
  2. <embed width="640" height="560" type="image/svg-xml" id="svgmapctrl"  
  3. pluginspage="http://www.adobe.com/svg/viewer/install/" src="default.svg" >
  4. </embed>
  5. [/code]   

其中embed标签指定为一个嵌入的对象,width,height分别指定该对象的宽度、高度,type指定类型为image/svg-xml ,src指定为svg数据文件的URL地址,指定这样的标签并在浏览器中打开,浏览器便回调用SVG Viewer在指定区域进行显示。此处,src指定的是一个svg文件,在GIS系统中,要求根据不同的请求获取不同的数据,则可以将其改为动态的url,如服务端的Java Servlet,由服务端动态生成。需要注意的是,SVG目前不支持GB编码,在使用中文字符时,请使用UTF-8编码。

  SVG图形对象简介

  SVG提供了丰富的图形对象,包括直线(line)、路径(path)、圆(circle)、图标(symbol)文字(text)、图像(image)等,满足了GIS系统的需要。这些图形对象可以通过设置不同的属性、显示样式来达到不同的显示效果。对象在SVG文件中以XML标签的形式存在,而对象属性以标签的属性来存取,可以通过访问SVG的DOM对象的方法来方便的存取这些对象及属性。同时SVG中还提供了组的管理(标签),定义(defs)及引用等功能。这些特征在GIS中得到了广泛的应用。

  SVG的事件简介

  SVG提供了丰富的消息触发及事件响应函数,获取用户消息。如在地图上移动、点击鼠标等。事件的相应可以定义到整个文档对象中,也可以定义在单个图形对象上。如要给某个路径(path)定义鼠标一定事件,可以这样 , onmousemove指定事件触发的条件(即鼠标在path上移动时),mouseMoved为要触发的响应函数,evt表示事件本身,可以通过evt获取与当前事件相关的信息,用户可以在script中定义响应函数,进行相应的处理。同样,SVG也提供丰富的状态事件,如数据装载完毕,就可以触发onload事件,作一些初始化的处理。

分享到:
评论

相关推荐

    jaxb-svg11-1.0.2-API文档-中文版.zip

    赠送jar包:jaxb-svg11-1.0.2.jar; 赠送原API文档:jaxb-svg11-1.0.2-javadoc.jar; 赠送源代码:jaxb-svg11-1.0.2-sources.jar; 赠送Maven依赖信息文件:jaxb-svg11-1.0.2.pom; 包含翻译后的API文档:jaxb-svg11...

    如何使用vite-svg-loader

    "使用 Vite-SVG-Loader 实现 SVG 图像的轻量级引入" 在现代 Web 开发中,使用 SVG 图像已经成为一个非常常见的需求,特别是在 Vue 应用程序中。然而,引入 SVG 图像经常会遇到一些问题,例如图像大小问题、浏览器...

    svg-pan-zoom-master.rar

    SVG-pan-zoom库是专为JavaScript设计的一个工具,用于实现SVG图像的平移和缩放功能,使用户能够通过滚轮或鼠标拖动来查看图像的各个部分。 这个"svg-pan-zoom-master.rar"压缩包包含了SVG-pan-zoom库的源代码及其...

    svg-pan-zoom-master

    SVG-pan-zoom-master 是一个专门为SVG图像设计的前端插件,用于实现对SVG图片的平移和缩放功能,同时也适用于普通的PNG和JPG图片。这个插件极大地提升了用户体验,特别是在处理大图或需要交互式查看细节的场景下。 ...

    jaxb-svg11-1.0.2-API文档-中英对照版.zip

    赠送jar包:jaxb-svg11-1.0.2.jar; 赠送原API文档:jaxb-svg11-1.0.2-javadoc.jar; 赠送源代码:jaxb-svg11-1.0.2-sources.jar; 赠送Maven依赖信息文件:jaxb-svg11-1.0.2.pom; 包含翻译后的API文档:jaxb-svg11...

    svg-pan-zoom.js

    viewportSelector: '.svg-pan-zoom_viewport' , panEnabled: true , controlIconsEnabled: false , zoomEnabled: true , dblClickZoomEnabled: true , mouseWheelZoomEnabled: true , preventMouseEventsDefault: ...

    SVG Programming-The Graphical Web.pdf

    本文内容主要围绕SVG(Scalable Vector Graphics)编程及其在Web图形开发中的应用进行介绍。SVG是一种基于XML的开放标准图形格式,用于描述二维矢量图形。与传统的位图图像不同,SVG格式的图形可以无损放大或缩小,...

    react-svg-pan-zoom, 将平移和缩放特性添加到SVG的响应组件.zip

    react-svg-pan-zoom, 将平移和缩放特性添加到SVG的响应组件 react-svg-pan-zoom英镑react-svg-pan-zoom是一个反应组件,增加英镑pan和英镑的缩放特性,以英镑的SVG图像。 它有助于在小空间中显示大的SVG图像。 实时...

    svg-explorer-extension-32bit-64bit-exe.zip

    本压缩包"svg-explorer-extension-32bit-64bit-exe.zip"包含两个文件,分别是"dssee_setup_x64_v011_signed.exe"和"dssee_setup_i386_v011_signed.exe"。这两个文件是SVG预览插件的安装程序,分别适用于64位和32位的...

    前端开源库-svg-captcha

    `svg-captcha`是一个专为前端设计的开源库,它允许开发者在Node.js或基于Express.js的环境中生成SVG格式的验证码。SVG,即可缩放矢量图形(Scalable Vector Graphics),是一种基于XML的图像格式,其优点在于图像...

    漂亮图标SVG150-css3-svg-icons

    "漂亮图标SVG150-css3-svg-icons"是一个集合,包含150个高质量、美观的图标,这些图标设计用于Web开发,特别是与CSS3和SVG技术相结合。 SVG(Scalable Vector Graphics)是一种基于XML的矢量图像格式,它允许无损...

    前端开源库-svg-react-loader

    本文将详细探讨“svg-react-loader”这一前端开源库,它主要用于将SVG图标转换为React组件,以便在Webpack构建流程中无缝集成。 首先,SVG(Scalable Vector Graphics)是一种矢量图形格式,它的优点在于可以无限...

    wmf2svg-0.9.8-API文档-中英对照版.zip

    赠送jar包:wmf2svg-0.9.8.jar; 赠送原API文档:wmf2svg-0.9.8-javadoc.jar; 赠送源代码:wmf2svg-0.9.8-sources.jar; 赠送Maven依赖信息文件:wmf2svg-0.9.8.pom; 包含翻译后的API文档:wmf2svg-0.9.8-javadoc-...

    NN-SVG-master.zip

    NN-SVG-master.zip是一个压缩包,包含了用于绘制神经网络架构的SVG图像的工具。这个工具特别之处在于它支持三种不同的神经网络模型的图形表示:全连接神经网络(FCNN)、LeNet以及AlexNet。这些模型在深度学习领域...

    nuxt-svg-sprite-loader:用于svg-sprite-loader的Nuxt.js模块

    nuxt-svg-sprite-loader 用于svg-sprite-loader的Nuxt.js模块。 安装 # npm $ npm install nuxt-svg-sprite-loader # Yarn $ yarn add nuxt-svg-sprite-loader 用法 该模块添加到您Nuxt.js模块列表nuxt.config.js...

    svg-sprite-loader.rar

    本教程将重点介绍如何在Vue项目中使用SVG Sprite,特别是结合`svg-sprite-loader`来实现。 首先,我们需要了解`svg-sprite-loader`。它是一个Webpack loader,专门用于处理SVG文件,并将其转换为Sprite模式。这样,...

    SVG-web 画图

    在SVG-web画图的实现中,jQuery可以用来处理用户交互,如点击、拖拽等,同时简化JavaScript代码,提高开发效率。 CSS(Cascading Style Sheets)用于控制网页的布局和样式。在SVG-web画图中,CSS可以用于调整SVG...

    svg-edit-2.5

    总的来说,SVG-Edit 2.5是一个强大且易于使用的SVG编辑工具,尤其适合那些希望在Web环境中创建和编辑矢量图形的设计师和开发者。它的开源特性使其成为一个充满活力的项目,不断受到社区的支持和改进。

    svg-edit 2.6

    SVG-Edit 2.6 是一个开源的SVG编辑工具,专为方便用户编辑或创建SVG文件而设计。这个版本提供了一系列实用的编辑工具,适用于网页设计师、开发者以及需要处理矢量图形的任何人。 SVG-Edit 2.6 的主要特性包括: 1....

    wmf2svg-0.9.8-API文档-中文版.zip

    赠送jar包:wmf2svg-0.9.8.jar; 赠送原API文档:wmf2svg-0.9.8-javadoc.jar; 赠送源代码:wmf2svg-0.9.8-sources.jar; 赠送Maven依赖信息文件:wmf2svg-0.9.8.pom; 包含翻译后的API文档:wmf2svg-0.9.8-javadoc-...

Global site tag (gtag.js) - Google Analytics