`
xml
  • 浏览: 8213 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ajax and WebGIS

    博客分类:
  • GIS
阅读更多
如今WebGIS大家应该都不陌生,Google Map将本属于专业应用的GIS引入大众化,不管是做过WebGIS开发还是只是使用Google Map、Mapbar、51ditu做公交查询、位置搜索的人,都已非常了解WebGIS给我们提供的各种基本服务。

WebGIS应用需要和空间应用服务器进行大量交互,简单的如漫游、查询、搜索,复杂的有地理编码、路径计算、空间分析,在发布面向企业的地图服务时,多台空间应用服务器做负载均衡是家常便饭,更不用说面向公众的地图服务。三四年前大家配置好服务器后,能在客户端看到地图显示,做一些基本查询就觉得非常新鲜了,没有过多去关心用户体验,后来为了适应大量用户访问的需要,WebGIS开始应用多级缓存技术,其中切片或瓦片就是其中关键技术之一,简单易用,同时Ajax的出现被立即证明它和WebGIS是不可分割的,所有WebGIS基本功能都可以基于Ajax方式去实现,缓存技术和Ajax在减轻空间应用服务器负载的同时大大改善了原有的用户体验,成为支撑现在WebGIS的经典技术(Ajax暂且也称为技术吧)。

Ajax和WebGIS颇有渊源的,两者几乎是在同一时期开始流行,2006年我参与的一个项目就用Ajax异步调用的方法实现地理查询和动态显示,当时还没有多少项目使用prototype,更不用提mootools、jquery了,全部手工去写,现在大家看来都非常easy,那时确实给客户留下了深刻印象。现在小结一些基本Ajax+WebGIS应用模式:

  • 地图漫游。放大、缩小、全图、移动,曾经这些基本操作可是要刷新整个页面的,等待地图加载时弹出一个GIF进度条,现在大家已经习惯了Ajax带来的体验,包括执行每个操作时渐变平滑的效果。
  • Identity查询。鼠标点击地图,和指定图层地理要素进行Intersect查询,查询结果以div形式异步弹出,显示要素的基本信息,并给出详细信息链接。
  • 搜索。在文本框中输入搜索条件,然后在地图上显示查询结果的位置并高亮显示。
  • 根据属性记录定位地理要素。在浮动列表中显示一系列属性记录,鼠标移动到列表中某一记录时,地图动态居中显示该记录的地理位置,并高亮显示。
  • 鹰眼。鹰眼和地图之间的平滑联动效果。
  • 放大镜。不至于执行一次放大镜操作刷新全图吧,移动放大镜框和按照指定倍数放大地图理所当然应该通过Ajax实现。
  • 距离面积量算。动态在地图上绘制出量算范围,并计算结果。
  • 地理编码。Geocoding和Reverse Geocoding,在地图上异步显示查询结果,如坐标位置或具体地址。
  • 路径计算。路径计算目前有两种实现方式,一种是查询之后刷新整个Map,并返回文字描述信息,一种是查询之后不刷新Map,直接返回文字描述信息。
  • 空间分析。空间分析是一个综合名词,缓冲区分析、叠加分析、服务区分析都可以认为是空间分析,空间分析计算量一般相对较大,Ajax异步显示分析结果理所当然。
  • 其他。不一一列举了。

确实,简单的几个技术组合将WebGIS向前推进了一大步,直接提升了客户对WebGIS应用的认识和要求,在经过新鲜感的过渡期之后,越来越多的客户需要将WebGIS和具体业务紧密结合在一起,最典型的应用之一是在WebGIS基础去查询或管理业务POI。过去,咱们都是在体验Ajax带给WebGIS的便捷,现在开始出现困惑了,例如WebGIS查询,当查询POI结果有几千到几万时,就会出现性能问题,客户端要异步刷新显示成千上万个POI点,会对客户端会造成较大的压力,如果还要基于这些点进行分级渲染,压力就更大了,有时在稍微年长一点的电脑上根本无法完成。抽稀是一种解决方法,以网状结点去代表每个比例尺级别周围临近的POI点,但这种方法不能适用于所有情况,有的应用非常关心POI点所在的位置有没有超出规定界限,这时抽稀反而带来了显示结果的不准确性。

对于这个问题曾想过很多办法,最后发现自己陷入了固定思维的泥潭,Ajax和WebGIS是天生一对,但在这种模式下,用传统地图请求响应模式比Ajax有效,一万个点在服务器端生成好后,以图片形式传给客户端,网络传输加上客户端的压力和对十个点查询的压力基本相同,压力抛给服务器去处理,看来WebGIS也有不适应Ajax的时候。综合考虑,当请求不多时可以考虑这种模式,当请求量很大时,服务器压力会大大增加,也不是一种万能的方法,不知道有没有更好的技术方案?

现在WebGIS Flex客户端已经开始流行,WebGIS在Flex中同样是基于异步的调用,一万个点仍然是可望不可及的事情,除非提升客户端电脑的配置,如果从开发技术上去实现有没有更好的方法?

Google Map: http://ditu.google.com
Mapbar: http://www.mapbar.com
ArcGIS Flex API: http://resources.esri.com/arcgisserver/apis/flex/
分享到:
评论
2 楼 xml 2008-12-22  
yishh 写道
呵呵,1万个点的话还是在服务端画吧,用flash效率也勉强可以接受了。


Intel Core 2 Extreme X9100 3.06GHz + 4G内存还能画,但用户体验已经不好了,因为仅仅是显示点而已,如果要根据属性对点做分级渲染,效果可想而知。

大家可能会想现实中有没有这样的需求,实际是存在的,例如地图上一个图层有几千个面状要素,代表着该区域的人口密集程度,用半透明的浅红到深红分别渲染面状要素,以此说明整个地区的人口分布情况,这样去做机器真的会死掉。点状要素也有类似需求,就不列举了。

Flex擅长于客户端显示,但我发现对于专题图而言,它只适合做饼图、柱状图,不适合做渐变渲染,而渐变渲染恰好是服务器的强项。
1 楼 yishh 2008-12-22  
呵呵,1万个点的话还是在服务端画吧,用flash效率也勉强可以接受了。

相关推荐

    基于AJAX的WebGIS应用.pdf

    AJAX(Asynchronous JavaScript and XML)是一种可以实现异步数据交互的技术,能够提高Web应用的响应速度和用户体验。基于AJAX的WebGIS应用可以实现快速的数据交互和实时更新,提高用户体验。 在WebGIS应用中,AJAX...

    采用ajax的WebGIS实现

    Ajax,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种创建动态网页的技术,它允许在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。在WebGIS应用中,Ajax可以显著提升用户体验,...

    基于Ajax的WebGIS应用研究.pdf

    Ajax(Asynchronous JavaScript and XML)技术可以使用户操作与服务器响应异步化,缩短客户端与服务器端的响应时间,减少网络间数据传输量。Ajax技术可以实现浏览器与服务器无刷新交互、数据的按需获取与页面的部分...

    Ajax在WebGIS中的应用.pdf

    Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这项技术在WebGIS(Web地理信息系统)中的应用,极大提高了地理信息系统操作的响应速度和用户体验。 2. ...

    Ajax与WebGIS的集成研究

    Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术。它并非指单一的技术或标准,而是指一种结合多种现有技术的方法,包括HTML、CSS、DOM、XML以及JavaScript等。Ajax的核心在于使用`...

    基于AJAX技术的WebGIS查询系统的开发

    为了解决这些问题,可以采用AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML)技术来开发WebGIS查询系统。 AJAX技术允许Web页面实现异步数据更新,这意味着在不重新加载整个页面的情况下,可以与...

    基于ArcGISServer和Ajax的WebGIS系统开发

    Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下就能与服务器交换数据的技术。通过使用Ajax,WebGIS系统能够实现实时的数据更新和交互式的用户界面,显著提升了用户体验。具体而言,...

    Ajax技术在WebGIS中的应用.pdf

    而Ajax(Asynchronous JavaScript and XML)技术的出现,更是为WebGIS的发展注入了新的活力。本文旨在探讨Ajax技术在WebGIS中的应用,重点分析其如何通过异步通信机制优化WebGIS的性能,并提出在实际应用中应注意的...

    Ajax在WebGIS地质图管理系统中的研究与应用.pdf

    Ajax 技术是指异步 JavaScript 和 XML(Asynchronous JavaScript and XML),它是用于创建交互式 web 应用程序的技术。Ajax 技术可以使 web 应用程序具备快速响应能力、实时更新数据、动态加载内容等功能,从而提高...

    基于AJAX技术的WebGIS客户端地图查询.pdf

    AJAX(Asynchronous JavaScript and XML)是一种异步的JavaScript和XML技术,用于实现Web应用程序与服务器端的异步通信。该技术可以让开发人员构建一种与服务器端交换数据的Web应用程序,客户端可以同时向服务器端...

    基于AJAX技术的WebGis系统实践

    本实践主要围绕使用AJAX(Asynchronous JavaScript and XML)技术来提升WebGIS的用户体验和性能。 AJAX技术允许Web应用程序在不刷新整个页面的情况下与服务器进行异步通信,从而实现了数据的动态更新和用户界面的...

    基于Ajax和ArcEngine的WebGIS系统的设计和实现

    **Ajax技术**,全称Asynchronous JavaScript and XML(异步的JavaScript和XML),是一种用于创建快速动态网页的技术。它将几种现有技术结合在一起,形成了一套强大且灵活的工具集,具体包括: 1. **XHTML和CSS标准*...

    AJAX技术及其在农业WebGIS中的应用

    AJAX(Asynchronous JavaScript And XML)是一种用于创建动态和交互式网页的编程技术,它并不是单一的新技术,而是JavaScript、XHTML、CSS、DOM、XML、XSLT以及XMLHttpRequest等多种现有技术的组合。AJAX的核心理念...

    Ajax与J2EE技术在电信WebGIS中的应用

    - **Ajax技术**:Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新,显著提高了Web应用...

    详细对webgis介绍

    传统的Web应用通常需要整个页面刷新来更新数据,而AJAX(Asynchronous JavaScript and XML)技术允许浏览器在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。通过监听用户事件,AJAX Engine与服务器...

    基于Ajax和MapGIS_IMS的WebGIS应用研究

    Ajax,即异步JavaScript和XML(Asynchronous JavaScript and XML),是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况...

    webgis[1].rar_VML_javascript webgis_webgis_webgis javascript

    例如,通过Ajax(Asynchronous JavaScript and XML)技术,我们可以实现页面无刷新的数据获取,提升用户体验。Ajax允许Web应用程序在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容,这对于实时更新...

    基于ajax的应用案例

    **Ajax(Asynchronous JavaScript and XML)**是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这种技术可以提升用户体验,使得网页...

    WebGIS考试参考试题.docx

    - **解析:** AJAX (Asynchronous JavaScript and XML) 是一种浏览器端的技术,用于实现异步数据请求和页面局部刷新,提高网页应用的响应性和用户体验。 #### 三、名词解释 1. **WebGIS** - **解析:** WebGIS是指...

Global site tag (gtag.js) - Google Analytics