浅谈用于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/ 网络设备介绍 网络设备是计算机体系结构中必不可少的一部分,处理器如果想 ...
随机推荐
- Windows下Anaconda安装 python + tensorflow GPU版
这里首先确认没有安装CPU版本,并默认已经安装了CUDA和Cudnn以及anaconda. 安装gpu版本的tensorflow 接下来需要安装GPU版本的tensorflow: 打开cmd并输入: ...
- TabBarIOS
参考:http://blog.csdn.net/wmmhwj/article/details/68483592 import React, { Component } from 'react';imp ...
- 《UltraFast设计法实践》系列目录
最近准备开始潜心学习快速和高效的时序收敛设计了,突然想就把整个学习过程做成一个博客系列吧,虽然想想就很激动(技术狗就这么点出息--),但希望坚持下来. 这篇做个目录或者索引,不断向其中添加学习内容. ...
- css第二篇:样式的特殊性、重要性、继承和层叠
特殊性: 假设有几个不同的规则改变的都是同一个元素的值,那么哪一个规则将会胜出呢?这就得靠特殊值啦,什么是特殊值呢?特殊值的大小呢?如下图: 值越大代表越牛,如1,0,0,0永远大于0,X,X,X ...
- Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名
Oracle数据库,用mybatic批量插入数据: <insert id="saveBatch" parameterType="io.renren.entity.N ...
- Go语言介绍
Go语言简介 Go语言是谷歌2009发布的第二款开源编程语言. Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全.支持并行进程. Go ...
- checkbox 框 选中判断
function checkAll(checktop){ $(":checkbox[name='id']").prop("checked",checktop.c ...
- 那些H5用到的技术(2)——音频和视频播放
前言audio标签Web Audio API自动播放的问题背景音乐的实现立即播放的问题SoundJSvideo标签播放样式的问题格式的问题总结 前言 正常情况,除了非常简陋的小功能H5,音乐播放是必不 ...
- ant.design初探
第一部分: 前言 推荐网站: https://ant.design/docs/spec/introduce-cn ant.design是基于react开发的一个解放ui和前端的工具,它提供了一致的设计 ...
- Java学习之路(三):Java中的数组
数组的概述和定义的格式 数组的作用: 用来存储同种数据类型的多个值 数组的基本概念: 数组是存储同一种数据类型多个元素的集合.就相当于一个容器. 注意:数组既可以存储基本数据类型,也可以存储引用数据类 ...