大家好,我在.net2008开发环境下基于prototype.js的Ajax技术实现了瓦片数据在本地的类GoogleMap,瓦片数据存放在本地页面容器中。
现因项目要求,需将瓦片数据放置于WebService中,现WebService中可以实现瓦片数据的读取和基于Base64编码的二进制转换后的返回值,请问各位XDJM,客户端Javascript代码在发送图像请求后应该做如何处理,等待服务器发送图像?接收到图像后如何解析和显示该图像?谢谢大家了

解决方案 »

  1.   

    js 发送请求后,服务器应当返回的是瓦片数据的标识(如 id),js 收到服务器返回的标识后,更新浏览器中组成瓦片的 img 节点的 src 为带标识的 url 作为对实际图片的请求,服务器收到此请求后将图片作为 MIME TYPE 为 image 类的数据流交给浏览器显示。
      

  2.   

    这个可不简单,牵涉到服务器端代码,返回图片流的部分牵涉到创建独立的图片服务(如果简单的用aspx页面实现会导致内存泄露),建议恶补一下相关的知识。
      

  3.   

    服务器应当返回的是瓦片数据的标识(如 id)是什么样的?
    服务器收到此请求后将图片作为 MIME TYPE 为 image 类的数据流交给浏览器显示,如何实现?
      

  4.   

    如果简单一些的实现可以在服务器端将瓦片数据保存为图片文件,js 请求时直接返回图片文件的 url 就可以了。不过服务器端需要有磁盘写权限和充足的磁盘空间,同时及时删除过期图片(磁盘空间也难免泄露 ;-p)
      

  5.   

    图片服务简单来说,有两个关键点。一是返回的 HTTP 头中设置 MIMETYPE 属性为图片文件对应的属性,具体来说作为图片就是 image/gif、image/jpeg、image/png 三个之一。二是数据流,由于图片为2进制数据,所以应当以2进制流的形式输出。
      

  6.   

    异步只是返回图片的标识或 url,你需要再用 js 代码更改对应 img 节点的 src 属性,一旦 src 改变,浏览器会自动请求并更新显示。
      

  7.   

    呵呵,还是不明白,本人Web开发技术尚浅,还请多多指教,有源码示意更好
      

  8.   

    WebGIS 的技术绝对是 web 开发中的高端,本人也只是早两年做过几个,远不是几百行代码内能完全搞定的事情。建议 LZ 要充分学习并理解服务器和客户端之间的通讯细节的情况下,再行深入。否则开发过程中一定是困难重重。
      

  9.   

    其实是先看看基本的知识,比如 .net 的开发教材,搞清楚"服务"、流一类的东西,还有 HTTP 通讯的基础部分:协议头的定义。客户端部分嘛,js、ajax、html dom 一个都不能少,建议完整学习一下“犀牛书”——《JavaScript 权威指南。》另外,还是要充分各种积累开发经验,很多东西书上是体会不到的,WebGIS 是需要综合开发能力的。
      

  10.   

    找找开源的openlayers看看吧,代码结构还是很清晰的。官网上有个UML图,可以对照着先从程序结构看起。
      

  11.   

    谢谢各位的鼎力相助,问题已经解决,http://blog.sina.com.cn/s/blog_49401fde01010ehn.html