浅谈用于WEBGIS开发最重要的4个HTML5特性
WebGIS是GIS与Internet相结合的产物,一般Internet的开发手段都可用于WEBGIS的开发,比较流行的有Javascript、FLash,到现在应该说市面上的WEBGIS产品和具有的功能都比较丰富。但也面临不少问题,我个人认为比较大的问题有几个方面:数据传输压力大、海量矢量数据支持、矢量数据快速渲染等。考察WEBGIS所遇到问题和现有技术方案,基于HTML5开发WEBGIS应该是最合适的解决办法。下面4个HTML5特性对WEBGIS开发最为重要:
1. 二进制数据(Native binary data / TypedArray) : 使用二进制存储空间数据,可有效降低文件大小,减少网络上传输的数据量,在同等网络条件下可加快数据加载提高用户体验。另外一方面,如果Geometry结构也使用二进制保存空间信息并与文件结构一致,则可以降低数据解析时间。一般GIS平台会用JSON和数组,点对象保存x、y、z,线对象包含点数组,多边形包含多个线对象,如果数据量大的话从文件到内存结构的转换时间也是很长的。
2. 画布 Canvas:图形渲染在GIS中也是极为重要的一部分,是用户对GIS最直接的认识。Canvas效果好速度快,就看你能不能最大发挥它的作用。
3. XMLHttpRequest level 2和WebSocket:这是通讯部分,XMLHttpRequest level 2 允许我们加载二进制数据,如果没有它设计好的二进制数据格式也加载不了。WebSocket可与后台服务器进行TCP/IP连接通讯。传统的方式只能传输文本,xml或者json格式,与二进制的数据相比,数据量大不少。
4. WebGL:它是3D绘图标准。如果能实现二三维无缝切换,就算3D功能少一些,只要能显示三维地形、简单要素如车辆行人,效果也非常不错了。
上面是开发WebGIS用到的4个关键特性,其他空间索引、拓扑分析等都是算法的范畴,只要积累够了就没什么问题。
《远景地理信息系统|RemoteGIS》
RemoteGIS是基于HTML5开发的高性能WEBGIS,支持百万级别矢量数据。
详细介绍和在线演示地址:www.remotegis.net
浅谈用于WEBGIS开发最重要的4个HTML5特性的更多相关文章
- 浅谈iOS视频开发
浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我们从 ...
- 浅谈App原生开发、混合开发及HTML5开发的优劣
App混合开发(英文名:Hybrid App),是指在开发一款App产品的时候为了提高效率.节省成本即利用了原生的开发技术还应用了HTML5开发技术,是原生和HTML5技术的混合应用.目前App的开发 ...
- 浅谈无线h5开发
最近一直在做h5的项目,对h5开发有了自己的理解.首先h5开发并不是指的html5的开发,而是指无线端的web开发,至于为什么叫h5开发,我觉得一方面是因为html5近几年还是挺受关注,另一方面h5在 ...
- 浅谈Android样式开发之布局优化
引言 今天我们来谈一下Android中布局优化常用的一些手段.官方给出了3种优化方案,分别是</include>.</viewstub>.</merge>标签,下面 ...
- 浅谈移动Web开发(上):深入概念
PPI 什么是PPI PPI的复杂之处在于如果他所属的上下文环境不同,意义也会完全不一样. 当我们在谈论显示设备的PPI时,它代指的屏幕的像素密度:当我们在谈论和图片相关时,我们谈论的是打印时的分辨率 ...
- 浅谈Bluetooth蓝牙开发
前言:项目用到蓝牙开发,具体蓝牙获取硬件传感器中的数据. 因为没有蓝牙开发的相关经验,决定先了解一些蓝牙开发的知识,再去看之前同事写的蓝牙相关代码. ------------------------- ...
- 浅谈Android系统开发中LOG的使用
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用 ...
- 浅谈Android系统开发中LOG的使用【转】
本文转载自:http://blog.csdn.net/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以 ...
- 浅谈 Linux 内核开发之网络设备驱动
转自http://www.ibm.com/developerworks/cn/linux/l-cn-networkdriver/ 网络设备介绍 网络设备是计算机体系结构中必不可少的一部分,处理器如果想 ...
随机推荐
- 项目中git的使用
通常一个项目的开发周期相对较长,为了便于对过程中的项目版本进行管理,以及方便多人合作进行开发,常需要使用到版本管理控制软件,本篇介绍常用的版本控制器git,记之共享. 一.git是什么?有何特点? 用 ...
- Jenkins windows部署
1.安装jenkins 进入https://jenkins.io/download/,下载windows安装包,解压后运行jenkins.msi进行安装. 配置jenkins (1)打开http:// ...
- Vue触发input选取文件点击事件
CSS .upload-btn-box { margin-bottom: 10px; button { margin-right: 10px; } input[type=file] { display ...
- (转)Linux strace命令
原文:https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html https://linux.cn/article-6444-1 ...
- AngularJS添加样式
AngularJS添加样式 通过controller.js中的某个$scope变量的值来决定div标签(或者其他html标签)的样式表. 示例 使用ng-style指令在div标签上 <body ...
- hibernate 中对象的3种状态总结
1.Hibernate把对象分文三种状态:Transient(临时状态).Persistent(持久化状态).Detached(游离状态). 1)Transient:刚刚new出来的对象,就是Tran ...
- PageOffice 使用Dome
一.前言 PageOffice是一款帮助Web应用系统或Web网站实现用户在线编辑Word.Excel.PowerPoint文档,Word/Excel模板动态填充,Word/Excel在线输入提交,系 ...
- JMS - ActiveMQ的简单使用
首先需要下载ActiveMQ,下面的链接给我们列出了所有版本:http://activemq.apache.org/download-archives.html每个版本为不同的OS提供了链接: 公司电 ...
- .NET的EF框架中:在应用程序配置文件中找不到名为“”的连接字符串问题
今天在使用EF Code First框架时,当把模型都定义好了,想通过程序包管理控制台利用enable-migrations –force来生成数据库表的时候报错了,如下: 找不到连接字符串,但是我仔 ...
- [android] 天气app布局练习(二)
主要练习一下GridView MainActivity.java package com.example.weatherreport; import java.util.ArrayList; impo ...