您的位置:首页 > 编程语言 > Go语言

从Google卫星地图服务器上获取卫星照片的方法

2011-02-16 16:12 447 查看
随着Google公司2005年推出基于客户真个GoogleEarth和基于web的GoogleMaps(http://maps.google.com)以来,在GIS行业无疑是掀起一次革命性的浪潮,成为GIS行业的领袖Google的网络访问速度让同行惊奇,一时成为众多GIS软件开发公司寻求的目标,在国内也不泛有大型GIS公司极力模仿GoogleEarth,甚至是界面和响应方法,同时它也是一款大众娱乐软件,GoogleEarth的高清楚卫片让人可以真正的放眼看天下,动动鼠标便可指导山河,从法国巴黎的艾菲尔铁塔到古埃及的金字塔和狮谷歌网赚联盟身人面像,无一不一览无余那么是否可以将这些明胜古迹的卫片下载到本地呢?基于这样的想法,对GoogleEarth和GoogleMap进行了一翻研究

  通过研究GoogleEarth创造,当我们在客户端访问时,它会不断地将卫片以及其它矢量数据下载到本地,并保存到"C:/Documents and Settings/Administrator(这里为系统登录用户名称)/Local Settings/Application Data/Google/GoogleEarth"路径下因此,在该路径文件夹下会创造两个文件dbCache.dat和dbCache.dat.index从文件名可以看出一个是数据文件,而另一个则是索引文件,由于它们都为二进制文件,且不知道其格式,因此想通过火析这两个文件的格式来提取卫片不太现实,于是把盼望放在了GoogleMap上

  对GoogleMap的研究果然有收获,本来每当我们在基于Web的GoogleMap上对视图进行一下缩放或平移操作,它都会将当前视图所显示的卫片下载到本地,下面来具体说一下步骤(重要针对电脑操作不熟悉的朋友):

  第一步:登录到http://maps.google.com

  第二步:在视图区域的右上角点击"Satellite"按钮,切换到谷歌翻译卫片视图模式

  第三步:搜索你想要下载卫片的处所名称在顶部的输入框中输入,比如"Beijing",记住要输拼音,由于是老外的东东嘛,然后再占击右边的"Search Maps"按钮不过做这件事之前最好先删除"C:/Documents and Settings/Administrator/Local Settings/Temporary Internet Files"文件下的所有内容,不要怕删除这些文件会影响你的操作系统,这个操作对操作系统没有什么影响什么?为什么要删除?假如现在你不明确,下一步你就会明确,呵呵!

  第四步:打开"C:/Documents and Settings/Administrator/Local Settings/Temporary Internet Files"文件夹,你会创造在该文件夹下会有很多jpg格式的图片不过,双击是打不开的,由于该文件夹是IE的缓存文件夹,你必须把图片copy到另外一个处所才可以打开,试一下,是不是创造每张图片都是256X256大小的jpg图片了?这就是Google服务器高低载下来的图片

  下载到本地的卫片都是有编号的,分辨以q、s、r、t来编号,但暂时还没有搞懂编号的意义理论上按它们有序编号的排列可以通过PhotoShop软件拼出一张大的卫picasa是什么片但直到我在写这个贴子的前五分钟,我放弃了去研究的它的想法,由于我在网上搜索到一款叫GoogleMapSuperGet的卫片下载工具,天助我也,我何必再操心费力,达到目标就成了呗该软件只需要点击两下鼠标便可以下载到我想要的卫片,而且是拼接好的卫片,不爽的是试用版只能一次下载100长卫片,不过对于下一个名迹古迹也足够了

Google将全地球卫星图片做为1级卫片,代码为t,只有1张,为256*256像素JPEG图片。

2级卫片将1级卫片进一步细化,共有4张,代码和顺序为:

tq tr

tt ts

2级图片比1级图片清晰1倍,单张图片大小不变,为256*256像素jpeg图片

3级图片有16张,代码和顺序为:

tqq tqr trq trr

tqt tqs trt trs

ttq ttr tsq tsr

ttt tts tst tss

4级卫片有4^(4-1)=64张,以次类推,第n级(n<=20)卫片有4^(n-1)张。顺序就是逐级4画面(qrst)分割。

下载方法:在IE地址栏中输入“http://kh0.google.com/kh?n=404&v=26&t=t”可以看到世界全图,入“http://kh0.google.com/kh?n=404&v=26&t=trstr”可以看到中国大陆。实际上Google 有多个服务器域名提供卫星图片的下载功能,从kh0至kh3都是可用的。

需要注意的是:有的地区在服务器上可能存在卫片缺级现象,即某地区没有15级卫片等。这时如果访问该图片,会提示文件不存在。

好了,具备了以上知识,如果你是个程序员,我想你应该是可以开发出一个自己的类似于Google Earth功能的软件了。如果不懂得D3D程序的开发,做个平面的也挺不错。如果你还够狠,就像俺一样,把下载过的图片全部分类存储到数据库中,这样你就有了一个不用上网也能用的Google Earth离线浏览器了。哈哈哈哈。如果你还懂得JPEG编解码,和数字图像处理技术,你可以拼接出任意你曾看过区域的卫星照片。如果你对GIS知识比较了解,根据卫片分级机制代码,你可以计算出任意图片上任意点的经纬度坐标;如果你是恐怖分子,手里有地对地导弹,选一个你不爽的地方,输入坐标,按下按钮,BOOM的一声后,世界清静了。

哦,望了告诉你,Google对非正常方式的访问会封锁IP,建议不要在固定IP上网的计算机上干这样的事情。你可以选一个ADSL拨号的宽带,设计软件的时候,注意分析从服务器上取回的数据,特别是对于不是图片的数据。根据一些标志性的文字来分析本张图片到底是不存在,还是服务器已经拒绝对你的IP地址提供数据。如果是拒绝服务,呵呵,控制你的ADSL猫断线,再重新拨号一次,呵呵,又可以继续下载了。

偷偷告诉你,我已经当了Google好多的数据,可是俺还是不知足,俺要当Google全部的地图……乖乖,要是1-20级每张图片都存在,估计有1000多T的数据量,除掉海洋、无人区等没有高等级卫片的区域估计也要有好几十个T的数据,放在哪里呢?谁有地方放联系我啊。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: