[原创]Google Map影像截获Web Service平台 大幅面高分辨率影像无缝下载

最近花了三天时间针对Google Map做了一个小的原型应用,用户可以在网站中的Google Map中选定影像下载区域,同时指定影像分辨率级别,然后我的网站可以自动为用户生成一幅符合要求的大幅面影像,现在可以生成单幅面大小20000*20000的影像,如果用户要求的区域过大,同时分辨率级别过高,造成生成单幅影像过大,引起服务器拼接影像时负荷过重,我会拆分成中间大小的网格,用户可以自己用专业图像软件进行拼接。

下面将我的应用实例截取图片给大家看一下:

第一步:选择要获取的影像区域大小和级别,可以鼠标在Map上点选区域大小,同时影像级别也可以选择获取当前影像级别,当然也可以自己输入。

第二步,计算图幅,点“计算图幅”按钮,系统会运算你想得到的图像有多大(长宽各多少像素),同时需要下载多少个系统自定义的网格子图等等信息。

 

第三步,点“发送Web Service请求,获取拼接Google地图“,Server端会自动截取Google Map影像并实现拼接,然后返回用户所需的大幅面影像地图。

 下面是服务端目录下面发生的过程,截几张图给大家看一看。服务器端获取Browser端的请求后,会获取一张张格网子图,保存到临时目录下面

 


 

上面这个目录是刚才那个例子在服务端生成的图片,其中01至168都是格网子图,最后拼接的最后结果是Res.png这张图 ,其大小是7291*7655,每一个格网子图的大约是601*601,最后的结果如下:

 


上面是一点展示,此程序与通常的拷屏截图的程序不一样, 这里充分利用了Google API的坐标运算方面的功能,运算每一格网所对应坐标,再用API提供的接口向Google Map定量获取,因此,我截取的图跟Google Map视觉效果保持一致,是无缝的。

至于这里面涉及到的一些小技术 ,在此也不详细述说,有一些要点是值得提一下,比如突破Google Api对同一Key和API连续访问的限制,用程序简单的连续发送获取格网子图的请求会受到Google API拒绝,这里需要在程序中加以小的技巧回避,同时,图幅拼接方面,需要去掉每一个子图下方的Google标签,这里是裁剪掉的,当然我们不可能去掉图上淡淡的Google Map 2009的水印,不过这种很淡的水印不去掉的话,只能作为个人用途,而不能商用,否则是侵权的。

好了,说到这里了,有需要的朋友,欢迎跟我联系,这个小的应用我大致上花了三天时间来做,和前面那个在Google Map上数字化的程序一样,是一个小的应用点子,如果大家有需求,可以跟我提,需求就是动力,这样我才知道如何这些小的点子继续往深处发展。

另外,我对网络嗅探技术、搜索技术,Data Mining方面有比较浓厚的兴趣,我的专业背景是GIS,希望能有机会能与各位探讨,最终目的是形成我们的团队,构建技术一流,人品和谐的集思维创意工厂,我们的团队专注网络嗅探,GIS应用,DataMining等领域,目前势单力薄,希望在两年内能有一个成形的迹象。

我的邮箱fuweiping@gmail.com,QQ 416274606,欢迎来电联系。


posted on 2009-10-18 15:02  giswei  阅读(4703)  评论(15编辑  收藏  举报