Web前台直接加载GIS格式数据分析
本文以Flex直接加载Shp、DWG和MDB为例。
首先看一份现估测数据:
1) 加载Shp文件,目前直接由前台Flex代码完成;
图1 在ArcCatalog里面的Shp文件

图2 直接在前台加载后的Shp文件
结果显示:
|
Shp文件 |
大小 |
加载时间 |
|
Shp1 |
50kb |
约3s |
|
Shp2 |
750kb |
约10s |
分析:未用后台开发,直接使用前台Flex对SHP开放数据加载,省去通讯时间,速度快捷,速度与客户端配置成正比。
说明:直接加载使用了LibertyGIS.swc组件。
2) 加载Dwg文件,后台开发Web服务,部署发布调用


图3 ArcCatalog里面的Dwg可视化 图4 Flex前台加载后的可视化
结果显示:
|
Dwg文件 |
大小 |
加载时间 |
|
dwg1 |
50kb |
约10s以上 |
分析:后台VS开发,使用了ArcGIS组件及转换方法,最后发布成服务前台调用,本机测试加载速度明显慢;
3) 加载MDB文件,也是后台开发Web服务

图5 ArcCatalog里mdb中要素

图6 Flex前台加载的MDB中的要素
结果显示:
|
MDB文件 |
大小 |
加载时间 |
|
mdb1 |
1M |
20s以上 |
分析:后台VS开发,使用了ArcGIS组件及转换方法,将图形数据转为轻量的Json/String数据然后传输到前台,速度随MDB大小成反比,而且并发会影响服务器运行。
总结:
加载Shp由于采用的是前台语言,比较快捷,很多基于Flex/Silverlight/JS的GIS系统都有直接加载Shp的功能,比较实用;
加载Dwg和Mdb采用了ArcGIS组件技术,并发布成Web服务,需要服务器后台与前台通讯联合,数据量一大就会出现地图卡死,加载慢,这是通用的弊端;
由此:
BS端GIS运用一般采用的直接发布地图服务的方式,不管什么数据统一使用地图服务转而使用图层的方式来加载,是最便捷快速的;
直接加载一些GIS数据适用于:局域网单独的小型的GIS格式文件,带有少量的属性数据,以便捷查看为主;大量(超过100M)的直接加载不符合BS开发的方式,BS端向来只以发布展现为主, 目前可继续测试在高配置服务器上加载多大文件比较适宜。
算法改进:目前从SOAP的协议以轻量的Json/String来实现,速度还是不尽如人意,可找寻替代开发技术或地图展现方面着手。
说明:测试速度以机子配置有关,本次测试以一般的普通机子为测试,速度较慢,配置好的机子速度会快,但理论思维可参考。
分析内容与结果仅供参考。
Web前台直接加载GIS格式数据分析的更多相关文章
- Web Api试图加载格式不正确的程序,解决方法
Web Api试图加载格式不正确的程序,错误如下: 问题原因: 出现上述问题的原因是,所加载的程序集中有32位的,也有64位的,IIS 7 程序池 在Windows下.Net FrameWork是64 ...
- 如何实现通过Leaflet加载dwg格式的CAD图
前言 在前面介绍了通过openlayers加载dwg格式的CAD图并与互联网地图叠加,openlayers功能很全面,但同时也很庞大,入门比较难,适合于大中型项目中.而在中小型项目中,一般用开源的 ...
- web.xml文件加载顺序
1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...
- web.xml 的加载过程
初始化过程: 在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点<listener>和<contex-param>. 接着容器会创建一个Serv ...
- Web Service无法加载协定为“ServiceReference1.xxxxxx”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分
Web Service 无法加载协定为“ServiceReference1.xxxxxx”的终结点配置部分,因为找到了该协定的多个终结点配置.请按名称指示首选的终结点配置部分 原因是在web.co ...
- web.xml 配置 加载顺序
web.xml 的加载顺序是:context-param -> listener -> filter -> servlet . 过滤器执行顺序是根据filter-mapping ,不 ...
- VS2010 需要缺少的web组件才能加载该项目
到的问题是解决方案中部分项目无法加载, 提示需要缺少的web组件才能加载该项目,是否通过WEB安装组件来网络安装, 点击确定以后就什么也没有了. 到微软网站去下载Microsoft Web Platf ...
- 使用getJSON()方法异步加载JSON格式数据
使用getJSON()方法异步加载JSON格式数据 使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数组,并对获取的数据进行解析,显示在页面中,它的调用格式为: jQuery. ...
- web.xml组件加载顺序
在配置项目组件的过程中, 了解Tomcat加载组件顺序很有必要. 例如某些框架如Quartz的集群功能需要数据库的支持, 数据库的加载肯定要在框架组件加载之前. 经过查阅和Debug发现, web.x ...
随机推荐
- 创建eclipse针对NDK的联合编译环境。
警告, 这篇文章是老的配置方式, 随着goolge工具的完善,有了更高级的配置方式,参考文章: 1.http://jingyan.baidu.com/article/3ea51489e7a9bd52e ...
- xfce 双击窗口标题栏无法最大化解决办法
From: http://hi.baidu.com/jhang20081616/item/0b36ca1d2137df592b3e2219 0.前提是已经在window manager里设置了doub ...
- Karma:1. 集成 Karma 和 Jasmine 进行单元测试
关于 Karma 会是一个系列,讨论在各种环境下,使用 Karma 进行单元测试. 本文讨论 karma 集成 Jasmine 进行单元测试. 初始化 NPM 实现初始化 NPM 包管理,创建 pac ...
- linux+php+apache+mysql(mariadb)故障排除
wordpress 网页文件打不开(client denied by server).白屏(http 500)问题排除顺序 1.查看apache错误日志查照问题报告找到问题 “client denie ...
- [js] js和C# 时间日期格式转换
下午在搞MVC和EXTJS的日期格式互相转换遇到了问题,我们从.NET服务器端序列化一个DateTime对象的结果是一个字符串格式,如 '/Date(1335258540000)/' 这样的字串. 整 ...
- netstat大量time_wait连接
http://chembo.iteye.com/blog/1503770 http://www.2cto.com/os/201007/54067.html http://blog.csdn.net/d ...
- for 循环
#include <iostream> int main(){ ; ; val <= ; ++val) { sum += val; } std::cout << &quo ...
- DIOCP网络通讯流程
DIOCP 运作核心探密 原文连接: http://blog.qdac.cc/?p=2362 原作者: BB 天地弦的DIOCP早已经广为人知了,有很多的同学都用上了它,甚至各种变异.修改版本也出 ...
- android项目中使用开源数据库litepal
下载地址 https://github.com/LitePalFramework/LitePal 参考文档 http://blog.csdn.net/guolin_blog/article/detai ...
- Qrels supervision information以及document collection,如何划分为train、test,保证test中doc对于train来说是new document
简单的思想:转换为最小割问题 无向图的全局最小割算法:Stoer-Wagner算法 简介见:Wiki介绍得比较好并有源代码 最小割算法:http://blog.csdn.net/markpen/art ...