高分求救,有关大图片浏览
现有一张极大的图片,现要在一个指定的区域(400*400)中显示,要象google map 或 visualearth 一样,可以随意移动,缩放。不知这个方法是否可行,如果可行,怎么解决,请告诉指点,谢谢。
------解决方案--------------------http://sunlilei.spaces.live.com/blog/cns!fd699c7e1c581f13!121.entry
------解决方案--------------------google map 的地图显示是采用ajax技术动态获取的部分图像数据的
移动,为同放大等级图片的切割后图片的获取,每次只取那部分图片。也可以用.net中的Graph来动态的从原始位图上截取所需部分的位图,然后展现给浏览者
放大缩小,乃是不同大小的图片
------解决方案--------------------http://www.mltang.com/article/973cdf9a-6ec8-412f-a075-02e0870e0131.html
------解决方案--------------------用Google Maps的引擎可以做到,它的引擎支持在地图上在增加层(类似Photoshop的图层概念),你也学它那样切割图片就行了,剩下就是一些JavaScript工作,而拖放加载等工作都是它做好的。
------解决方案--------------------http://www.mltang.com/article/973cdf9a-6ec8-412f-a075-02e0870e0131.html
看看吧
------解决方案--------------------你用Google搜索 "Google+Maps+API ",然后能够找到官方的文档,然后慢慢读吧。里面没有明确记录可以这样做,但实际上是可以的,这你需要在参考一些第三方文档。
------解决方案--------------------哎呀,我不久前刚刚做过这个的技术攻关花了好多时间. 最后是这样做的, 我建一个 ashx ,根据参数 (左上角坐标, 缩放比例) 来得到一个制定区域大小的内存图片,然后以2进制向响应流写出.
在显示的页面,用一个 <asp:ImageButton > 设置你要的大小,然后把图片设置为这个ashx的地址.
ImageButton的Click事件是可以拿到鼠标对应于图片(也就是按钮)左上角的x和y坐标的 e.X ,e.Y 就是了. 然后再次计算,输出图片.
因为存在缓存的问题,所以又用了一个随机的temp=784632764 这样的学CSDN来达到去掉缓存的目的.
然后接下来就是一个AJAX的无刷新改造了. 其中还遇到一个问题是当这个ImageButton在一个带着滚动条的父控件内部(页面本身带滚动条也算), 在Operal和IE6,IE7,FF等浏览器下对鼠标点击点的计算难以统一,主要问题尽是IE6和IE7上,你对了我就错我对了你就错....后来改用了一点小技巧对坐标根据页面偏移进行2次校正.
看起来简单,里面好多东西.
没办法,本来要用控件的,一问........ 20万一套.... 买不起...这台服务器又由于特殊原因绝对不可能让盗版的东西装在上面的....所以只能自己想破了脑袋解决.
如果图片非常大的时候,用一个ashx处理造成了性能问题(我那图片就巨大无比...),可以改用WebService代替ashx.