2006年9月21日星期四

正常访问Google网页快照的插件代码

  昨天介绍的“正常访问Google网页快照的方法”一文的最后,我提到了使用一些浏览器的开发插件来自动进行字符串进行替换,不少读者希望我能将的更详细一些,下面,我就将详细介绍一下如何使用插件代码实现字符串替换。

  首先,正如“浏览器的GreaseMonkey和Trixie插件”一文介绍的,不同的浏览器使用的插件是不同的,FireFox使用的是GreaseMonkey插件,而IE使用的是Trixie,不过两者功能基本一样,使用的js代码也一样,这里我就以FireFox为例详细说明一下如何安装使用。

  首先,使用FireFox浏览GreaseMonkey网站,点Install Greasemonkey来安装GreaseMonkey插件。

  其次,访问这个地址,点Install来安装Google Cache代码,现在你再使用一下Google搜索,看看网页快照是不是全都好了。

  代码本身很简单,如下所示,Trixie插件也可以使用这段代码:

    (function() {
     var allLinks = document.links;
     if (allLinks  != null)
       {
          for (i = 0; i <allLinks.length; ++i)
          {
             if (allLinks [i].href.indexOf ("/search?q=cache:") > 0)
             {
                 allLinks [i].href = allLinks [i].href.replace ("/search?q=cache:", "/search?&q=cache:");
             }
          }
       }
    }
    )();

  需要注意的是,如果某一天72.14.235.104这个IP不能访问了,那么你需要在代码里加入一段代码来替换快照服务器的IP地址,具体方法是,在上面的replace那段替换代码后增加下面一行:

  allLinks[i].href = allLinks[i].href.replace ("72.14.235.104", "64.233.167.104");

  或者

  allLinks[i].href = allLinks[i].href.replace ("72.14.235.104", "216.239.63.104");

  这样,插件会自动将快照服务器的IP地址替换为你指定的IP地址。

2006年9月20日星期三

正常访问Google网页快照的方法

  目前,Google的网页快照几乎完全无法访问,对Google的使用者来说非常不便,本文将从Google网页快照无法访问的原理出发,逐步分析出一个可以正常访问Google网页快照的方法。

  根据Google自己的介绍,“Google储存网页的快照,当存有网页的服务器暂时出现故障时仍可浏览该网页的内容”。因此说,网页快照服务器本身出问题的可能性非常小,否则就成笑话了,那么为什么我们都无法访问Google网页快照呢?我们只要分析出不能访问的具体原因,就能知道正常访问Google网页快照的方法。

  举个例子分析一下,比如使用Google来搜索“搜索引擎”这个词,可以看到如下图的界面。

Google搜索

  这时我们看一下“网页快照”的URL地址,可以发现是下面的地址:

  http://72.14.235.104/search?q=cache:aPVaeKi1wxcJ:www.baidu.com/+%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E&hl=zh-CN&ct=clnk&cd=1

  根据我们的测试,72.14.235.104这个IP是可以访问的,完全可以ping通,如下图所示,这说明网页快照服务器本身实际没有任何问题,完全可以直接访问到。

Google搜索

  但是我们点击“网页快照”链接后,却出现“该页无法显示”的提示。如下图所示,这显然是关键字过滤的现象。

Google搜索

  为了分析出具体是什么词语影响,我们还可以在Yahoo下搜索“search?q=cache”这个词,会发现Yahoo也出现了“该页无法显示”的提示。

  现在,聪明的读者应该已经明白这意味着什么了。既然知道了原因,那么解决方法应该很简单了。就是在search?和q=cache中插入一些字符,将这个词分开即可,就可以让Google的网页快照“恢复正常”。

  还是上面提到的这个页面的网页快照,我们将“网页快照”的URL地址复制到地址栏,然后将“search?q=cache”中间插入一个“&”符号,使得该词语变成“search?&q=cache”,这时候按下回车,我们就可以看到了久违了的Google网页快照,如下图所示。

Google搜索

  当然,这是分析出网页快照无法使用的原理,具体使用中,如果我们每次都这样用快照,那就显得非常麻烦了,如果大家需要频繁使用,建议安装一些浏览器的开发插件,自动将搜索结果中的字符串进行替换,这样就可以完全自动实现Google网页快照的正常浏览访问,关于详细的代码安装和下载,请查看文章《正常访问Google网页快照的插件代码》。

2006年9月19日星期二

Google Maps API编程资源大全

  Google Maps API是Google自己推出编程API,可以让全世界对Google Maps有兴趣的程序设计师自行开发基于Google Maps的服务,建立自己的地图网站。以下是我在Google Maps API开发过程中找到的一些API的编程资源,包括中文文档,中文说明,示例等等,希望对Google Maps编程感兴趣的程序员有所帮助。

  中文资料部分 (包括中文的文档说明等,以下的网址都是中文内容。)

  下面的关于API的中文文档

  Google Maps API 第2版中文文档 http://www.step1.cn/GoogleApi/map2/documentation.htm

  Google Maps API 第2版升级指南 http://www.step1.cn/GoogleApi/map2/upgrade.htm

  Google Maps API 第2版类参考 http://www.step1.cn/GoogleApi/map2/reference.htm

  另外一个版本的Google Maps API 2中文文档 http://www.zmap.org/doc/maps/documentation/

  Google Maps API 第1版中文文档 http://www.step1.cn/GoogleAPI/map/documentation.htm

  下面是关于KML文件的中文文档

  Google Earth KML中文说明(一) http://gisman.bokee.com/5294713.html

  Google Earth KML中文说明(二) http://gisman.bokee.com/5294722.html

  Google Earth KML中文说明(基于Google Earth客户端版本3.0 的KML 版本2.0) http://www.step1.cn/googleapi/map/kml.htm

  英文资料部分 (主要是Google官方的文档说明,如果觉得中文翻译的有问题,也可以看看这些原始内容。)

  Google Maps API 官方网 http://www.google.com/apis/maps/

  Google Maps API 英文文档 http://www.google.com/apis/maps/documentation/

  Google Maps API 官方Blog http://googlemapsapi.blogspot.com/

  Google Maps API 论坛 http://groups.google.com/group/Google-Maps-API

  Google KML 的官方文档 http://earth.google.com/kml/

  Google API官方网 http://code.google.com/

九一八事件的杂感

  今天是九一八,是中日战争的起点,各处都有一些纪念活动。我也特意研究了一下九一八当时的历史,有如下所得:

  事件导火索

  九一八事件的导火索之一:万宝山事件,韩国人充当了极不光彩的角色,现在认为韩国比中国更恨日本的,建议温习一下当时的历史。另外一个导火索:中村事件,中村事件的性质和前段时间的“日本人在新疆偷测被驱逐”事件是相同的,都属于在中国非法军事测绘。

  国耻的由来

  1931年9月18日当晚,中国驻沈阳北大营数万名守军被只有500多人的日军击溃,其后仅仅几个月时间,日本关东军以1万余人击败了有14万人中国东北军,并在短短半年内占领东北三省。

  伪满洲国

  1932年3月1日,日本扶植的伪满洲国正式成立,末代皇帝溥仪担任傀儡式的国家元首,这段历史大家可以参看一下电影《末代皇帝》。

  谁的责任

  九一八的主要责任人是谁?是蒋介石还是张学良?这里有一些争议,中国的教科书曾经将主要责任人记在蒋介石头上。

  我个人认为张学良应该负主要责任,中国教科书上曾经说蒋介石下令“东北军绝对不抵抗”,张学良“忍痛执行”蒋的“不抵抗主义”方针,导致东北失陷。这种说法目前被证实为是不真实的,千龙网上有一篇文章《蒋介石向张学良下过不抵抗命令吗》详细地对当时的状况进行了论证,张学良后来也自述,九一八事变发生后,下不抵抗命令者,是他自己,因此,九一八事件的主要责任应该是张学良而不是蒋介石。

  张学良为什么要下不抵抗命令呢?张学良自己后来表示,他当时认为“战争不合乎日本政府的利益,日本政府应会约束关东军”,错误判断日军目的,以为日军是“寻事”,所以才下令避免冲突,结果使得东北领土在短时间内沦陷。

  大家要像了解更详细的九一八的历史,建议去维基百科看个究竟:http://zh.wikipedia.org/wiki/%E4%B9%9D%E4%B8%80%E5%85%AB

  当然维基百科的那个地址是无法直接打开的,国内也有一个镜像地址:http://www.wiki.cn/wiki/%E4%B9%9D%E4%B8%80%E5%85%AB

2006年9月18日星期一

采菊东篱下,悠然见南山

  周末去爬南山。

  这次爬的南山比上次我在梅林爬的山要好爬多了,路程也不长,全程都有水泥路,很好爬,我只用了一个小时就爬完了。

  爬山的过程也是挺辛苦的,中途休息了好几次,不知道这次会不会像上次一样腰酸腿疼一星期。

  下面是登山过程中拍摄的一些照片,由于今天天气不好,能见度不高,影响了照片的质量。

深圳南山

  在山腰上后头看蛇口(图)。

深圳南山

  蛇口的景色(图)。

深圳南山

  远处的大桥是深圳湾公路大桥(跨海大桥),可以看到对岸香港的楼房(图)。

深圳南山

  由于天气不好,大桥和香港新界都看的不是很清楚(图)。

深圳南山

  山顶的景色(图)。

深圳南山

  从山顶上看南山蛇口(图)。

深圳南山

  远处的填海工程,从大自然手里拓展后海区域的土地(图)。

深圳南山

  连接香港的深港西部通道(跨海大桥),实际在后海那片居民区是备受抵制的,大量的废气、噪音将对周边环境造成一定的影响(图)。

深圳南山

  在另外一侧的前海,太阳的晚霞将大海染成通红的颜色,相当壮观(图)。

深圳南山

  下山的过程中,发现山中有不少别墅,住在山里也很不错啊,景色多么优美(图)。

深圳南山

  下山时还看到一个有趣的标语牌,呵呵,大家爬山的时候可不要无意中丢烟头,会被警察叔叔抓走哦(图)。

  爬山是一项极好的运动项目,经常从事爬山锻炼,对于健康确实大有益处,特别对于经常在室内坐着工作的脑力工作者更是如此。以下是中国中医药报介绍的一些爬山时候的注意事项:

  爬山有益身心健康,但爬山耗氧量很大,所以爬山,一定要根据自己的身体状况,注意安全,如果患有心脏病、高血压,最好不要爬山。爬山前先做热身,然后按照呼吸频率,逐渐加大强度。速度不宜过快,以没有不良反应、不明显喘气为度。爬山时注意多喝水,一方面稀释血液,同时可以减轻运动时的缺水程度,随时补充水分,可尽快恢复体力。爬山时候要注意休息,休息应长短结合,短多长少。短休息以站着休息为主,长休息应先站一会再坐下休息。

2006年9月16日星期六

Google Earth中文版和卫星导弹技术

  Google Earth已经出了一年多了,很多英文不好的网民都希望Google能出一个Google Earth中文版,可是等了这么长时间,中文版依旧是遥遥无期。

  目前,Google Earth已经支持英语、德语、法语、意大利语、西班牙语。但是没有中文版本,对于Google Earth的官方中文版,我咨询过Google的相关人士,得到一个未经证实的消息是:Google方面暂时没有Google Earth中文版的开发计划。

  Google Earth不开发中文版,虽然对于英文比较熟悉的网民来说无所谓,但是对于大多数英文不太好的人来说就是坏消息了,中文版只能依靠第三方的热心网友汉化来完成。对于为什么不进行开发,我估计可能和中国目前的社会文化层面有一些关系。

  首先是接受程度的问题,对于一个新事物,不同国家的人接受的程度也不同。比如在美国、欧洲等民众思想相对开放的地区,Google Earth都提供本地语言版本的程序,并且卫星地图更新速度也非常快,人们甚至可以看到几个月前的卫星地图。而对于相对保守的地区,Google Earth的这种服务就可能遭到限制,如果提供最新的卫星地图可能还会惹来麻烦,因此卫星地图的更新也就显得非常缓慢。

Google Earth卫星地图软件

  另外一个原因可能是因为所谓的“Google Earth是否泄密”的问题,这对于中国来说也是个敏感问题,大多数平民都可以查询卫星地图资源,是否会将所谓的“中国军事秘密”泄露给外国。

  其实这是一个误解,就如同美国国防事务专家布朗分析的一样,平头百姓不太可能发现训练有素的美国军方卫星图片专家都没有发现的所谓“中国军事秘密”,因为一个卫星图片专家培训要10年以上的时间。而且恰恰相反的是,如果某国有战略欺骗的意图,那么大可以反过来利用这个渠道让潜在的敌手上当受骗,乐滋滋取回的“军事情报”其实是个大陷阱。

  事实上,军事和经济越是发达的地区,越不害怕所谓的泄密,Google Earth对于美国自己的军事目标美国航空母舰日本的驱逐舰等都有非常详细和清晰的展示和标注,但是当地民众没有感觉这有什么问题,越是自信的国家越不会害怕这所谓的“泄密”。

  至于说让恐怖分子利用也颇为牵强,恐怖袭击主要的目标是人群众多的地方,比如摩天大楼、地铁、机场等地方,以便造成尽可能多的平民伤亡,不会有恐怖分子傻到去袭击防守严密的军事基地,去攻打军队?那不是自投罗网吗?

  不过Google Earth的这种卫星地图对于一些中国周边技术不发达的国家还是有一些用处的,比如越南、韩国、菲律宾、中亚诸国等国家,他们对中国很感兴趣,又很提防中国,可是自己又没有卫星技术,有了Google Earth这样的软件,正好可以很方便的了解一些中国的情况。

  对于美国的卫星技术,其实我们也不必过于害怕而自卑。的确,美国的卫星和激光技术以及精确制导武器等高科技技术的高速发展的令人眼花缭乱,卫星技术和精确制导武器在美国最近十多年来的战争中发挥了极大的作用,以至到了“指哪打哪”的地步,然而,精确制导武器并没有发展到巅峰,主要的问题是其命中率并不如想像得高,只有60%左右命中率,这方面的原因很多,但是不容忽视的问题是卫星定位具有先天的不足。

  卫星定位系统的抗干扰能力是很差的,环境对于末段景象匹配的影响是很大的,对于接收信息的可靠性难以进行验证,地球的磁场、光线的折射和反射、镜头的角度、景物的反射率和辐射率的变化、云和太阳投射角的变化、太阳电离层、蓄意干扰等等都是影响卫星图像准确性的重要原因,因此,即便美国的军用卫星能提供比Google Earth清晰度更高的地面影像,也需要配合以地面校正,才能给导弹精确导航。即便我们可以通过军用卫星看清楚一个人的手表,但依旧无法知道其确切的经纬度。

  因此,仅仅依靠卫星定位是不够的,需要地面人使用相关设备进行人工校验,或者使用预警机进行地面的监控,只要有地面的高精度GPS设备定位相配合,军用卫星和精确制导武器就可以发挥出惊人的威力,伊拉克战争就是一个现实的例子。

  这时候,我们就应该理解,为什么日本在已经拥有卫星技术的同时,还要派人潜入新疆进行GPS卫星定位的原因了,通过地面GPS和高精度军用卫星的相互校正数据,即可得到某些敏感地区的准确经纬度坐标,这样,远程精确制导导弹就可以不费吹灰之力对地面目标进行“精确打击”了。

  参考新闻:“日本偷测新疆”意味着什么

  作者:远林

  大林成行是日本株式会社国土情报技术研究所所长,东俊孝是他的学生。2005年9月23日,他们两人携带两台高精度GPS接收机,到达新疆和田机场附近李某家,在其屋顶上安装了GPS接收机作为固定站。另一台GPS作为流动站,装在他们乘坐的汽车里采集数据。就这样,在没有经过中国相关主管部门批准的情况下,擅自采集了和田机场、和田市至当地重要水利设施公路的地理坐标数据。结果被新疆国家安全部门当场发现,暂扣了相关器材和物品,并将两人递解出境。因此案属违法测绘案件,按照规定移交新疆测绘局处理。

  2006年4月6日,新疆测绘局依法对此次日本人在中国新疆非法测绘一案做出处罚,最终决定没收测绘成果和测绘工具,并处8万元人民币的行政罚款。

  人们普遍支持对日本人非法测绘的处罚。但日本当事人喊冤,中国也有相当多的人不理解非法测绘的危害。有人在网上说:美国的民用卫星是公开的,卫星影像已经精确得吓人,五角大楼外面停车场里的汽车是大巴还是轿车都分得清楚。日本人在新疆测量得到的数据难道还能比Google Earth上的还要精确直观?

  卫星影像的局限性

  据报道,日本已经违背承诺(日本曾向全世界承诺“航天技术非军事化”),发射了多颗间谍卫星,可以获得高分辨率的卫星影像,此外日本还能从美国获得高分辨率的卫星影像。

  然而,给你一张0.3米分辨率的、毫无变形的高分辨率卫星影像,根据卫星拍摄时的位置,你可以确定这张影像的大概位置;你可以看清“五角大楼里面汽车的颜色和人数”,但你显然无法确定五角大楼的精确地理坐标。由于卫星往往是斜穿过目标区上空的,你甚至在卫星影像上难以确定正北方。这就是高分辨率的卫星影像的定位难题。

  另外,细心的人会发现,专业相机拍出的照片上景物也有细微变形,普通家用的就更明显,只是人们不注意罢了。同样,航拍或卫星拍摄影像时,因为地球是圆的、大气折射、倾斜照相和镜头及相机不可避免地存在误差,最终获得的影像必然存在一定误差。所以用户购买卫星影像时,出售卫星影像的部门总是等一定的周期后才能提供影像产品,原来,他们要用电脑对原始卫星影像做非常复杂的加工调整后才能提供给用户。

  在Google Earth上面,一些卫星照片接缝处景物明显对不上,这也从一方面证明了较大误差的存在。航拍或高分辨率卫星影像制成的地图,如果没有经过地面控制点的精确校正,就不够精确。所以目前各国炮兵一般都不是靠地图量距离,而是用激光测距仪直接测量火炮到目标的距离。

  地面校正弥补卫星影像缺陷

  人们在Google Earth上面看到的卫星影像,已经标上了较精确的地理坐标,但这些坐标是用其他方式获得的。必须指出的是,这些地图的精度不可能很高,连带卫星影像的地理坐标精度也有限。

  冷战时期美国也无法在苏联领土上精确测绘,所以一直在提高影像卫星的精确定位的能力,以此获得地面精确的地理坐标。美国通过航天合成孔径雷达测绘,已经绘制了全球30米精度三维地图。这种不精确的地图却不影响陆军使用。但就算美国的军用平面地图比这个精度高十倍,足够引导美国核导弹精确打击俄罗斯核导弹发射井,也可以勉强引导导弹攻击,可是要用于引导常规弹头的巡航导弹或JDAM炸弹精确攻击扎卡维的房间,考率到导弹本身也有误差,这个精度就不够了。

  由于距离太大,加上地球的曲率,激光测距仪肯定也不能使用。这时就需要有更高精度的电子地图。而这样的地图往往需要用高分辨率的卫星影像加地面控制点校正的方法才能完成。

  此外,日本是世界上惟一偷袭过美国的国家,美国影像卫星精确定位的技术未必提供给日本,所以日本将更依赖地面校正。

  今天GPS可简单分为民用导航机和专业测绘机。民用导航机的精度大约在10~20米,而专业测绘机的精度最高可以达到毫米级。民用导航机精度不高,如今广泛运用于汽车和运动方面。而外国人未经允许在中国使用专业测绘机就将违反中国测绘法。新疆测绘局指出,此次日本人所持的测绘工具属于高精度仪器,采用的测量方法已经可以将数据精确到20至50厘米,超出了普通游客的使用性质,所得数据完全可以用于军事目的,这在世界各国都是绝对不允许的。调查人员还发现,两人被扣的便携式电脑里还有中国其他省市的相关测绘数据信息。

  入侵者的秘密

  在近年美军发动的多次战争前,美军曾借助原有资料和卫星影像,紧急制作了整个战地的电子地图,据说精度在10米左右。在阿富汗以及伊拉克游击战期间,美军地面部队搜寻恐怖组织头子时使用这种地图已经足够。但这样的精度显然不够用来引导高精度导弹。伊拉克战争期间,人们都知道美军导弹命中率奇高。但很少有人知道,萨达姆同国际社会合作,允许联合国核查人员当中的英美专家,公开核查伊拉克的所有重要军事设施,并允许高精度GPS设备定位,这也是美军导弹命中率奇高的重要原因。

  《国际先驱导报》披露,虽然此案是新疆首例,但外国人来华非法测绘受到处罚的例子在中国不是第一例,其他省市也都依法处理过类似案件。事实上,类似的问题在历史上也由来已久。

  过去,清政府和民国政府盲目推行友好政策,对日本在中国的非法测绘没有有效遏制,结果1874年,日本陆军就出版了《清国渤海地方图》。这些地图和资料对当时尚弱小的日本战胜庞大但腐败的清军,起到了极重要的作用。

  “九一八”事变爆发前,日本飞机便偷偷在整个中国东北实施航拍。但是这些航拍照片难以定位,所以日本不得不偷偷派出大量人员,携带测量器材,测量一些地面控制点。然后在航拍照片上找到这些地面控制点实施校准,就可以较精确地推算出航拍照片的方位和地理坐标。日本人就是这样基本完成了中国东北1:20万军用地图的测绘,并用它侵占中国东北的。

  1931年6月,发生的“中村事件”(见资讯)是日本侵华史上的重要事件之一。其实中村独立绘制这个山区的10万分之一军用地图是有困难的,他多半是为了测量地面控制点,从而帮助校准日军航拍绘制的军用地图。

  全面抗战前的一段时期,日本竟然派出千余人到中国非法测绘。由于日本可以在中国随意地测绘并校正地图,日本侵华时使用的军用地图竟然比中国军队自己的地图还要精确得多。这些地图往往精确到地表的一棵树一间房,标注尤其细致入微,一些当地人多数都不知道的小路在日本军用地图上竟然标注得清清楚楚,结果在战斗中使中国军队一再遭受不应有的失败。

  来源: 中国新闻周刊

2006年9月15日星期五

Google Earth开始支持中文地标

  今天浏览Google Earth,发现了一个惊喜,就是Google Earth的社区分享地标图层支持中文了。

  就在昨天,我写《Google Earth的十个常用技巧应用》的时候,我因为分享地标图层乱码引起视觉上的混乱而摇头叹气,而今天,我发现Google Earth进行了更新,在Google Earth社区分享的地标上支持中文显示了,我浏览深圳地区的地图,发现所有的中文地标显示都正常了,这实在是太好了,以后,我们终于可以用中文来在Google Earth上分享自己的地标标注了。

Google Earth中文地标

  在Google Earth上分享自己的地标,请参见前文《Google Earth的十个常用技巧应用》。

  另外,Google Earth的不少了例如“国家地理杂志”这样的特色图层也发生了更新,里面的地标数量大幅增加,这次Google Earth的更新实在是不错啊。

  最后,分享一个深圳的有趣地标(22°33'2.89"N,113°56'15.92"E),在深南大道科技园汽车站以北820米处,有一个深圳最大的鼠标,如下图所示。

深圳最大的老鼠