[转]Google Maps的内部机制(部分)

原文:http://spaces.msn.com/gemtang/

Google Maps 与以前的ArcIMS、MapXtreme等二次开发出来的系统有着本质的不同:

  1.地图预先生成,这一点是首当其冲的,说了很多次了。

  2.地图切片,客户端同时下载。当地图窗口发生移动、缩放时,便需要下载新的图片来填充新的区域,在这里充分利用了浏览器(如IE)的多线程同时下载的功能,另外,下载过的图片无需再次访问服务器下载。缺点就是客户端编写需要大量脚本来支持。

  3.由于服务器不是实时地根据矢量数据生成地图图片,就造成了地图数据无法及时更新。但若仔细察看,不难发现Google Maps上的数据其实大部分是道路交通、行政边界,其他的POI(Point Of Interests)信息并不是固化在地图上的,如此便使人觉得地图稍显单调,好在高质量的卫片影像弥补了此不足。Google通过客户端脚本技术,把用户的搜索结果(也就是各种POI数据)以“大头针”图片的形式展现在客户端浏览器上,比如有名的官方Pizza店示例。反过来一想,还真得佩服Google的设计:POI数据是经常更新的,而基础数据(Framework dataset,比如高级别的道路、桥梁、城市、湖泊等)则是很少变动的,即便是某些小道路发生变化,也可以很方便的生成该范围的地图斑块,这个工作量是较小的。

  4.上面提到了POI数据,其实它是动态生成的(当然,也可以是静态的),这个怎么说呢?好比Google的网络爬虫找到了某个公司的门户网站,分析出了该页面的内容结构并找到了其联系方式:##,**Road,**City,通过Geocoding技术便可在地图上找到其位置。

  5.由于地图图片的预生成,以前的WebGIS站点经常提供的“图层控制”功能便无法达到,其实,这个并不影响用户的使用体验——Google地图是如此的清晰明了,用那玩意儿干啥?

  6.抛弃“鹰眼”窗口,也就是那个缩略图,可能有人觉得用起来不太习惯——因为你不知道目前浏览到具体哪个位置了。但是,想想看:全世界的地图,当你放到到很细节的地方时,鹰眼上的显示框会多么的小啊,丝毫没有意义。

  7.在地图上弹出Info Window以显示详细信息,底层实现使用了XML和XSLT,的确在界面上和视觉上给人以冲击,而且这也的确是一个好主意——既很好的节约了页面空间,又方便了用户操作。

  8.“图中图”。该功能可谓煞费苦心,看看人家就是做得细致,在弹出的Info window中还有一个小地图来显示周围的情况,还可以在小地图上进行缩放,有点儿类似放置了一个放大镜在那里,真够绝的。

  9.疯狂的运用Javascript脚本,恰好现在的Web设计又回归Javascript,特别是自AJAX的流行以来,似乎有唤醒了大家对浏览器端的脚本的重视。Google Maps的脚本可不是一段两段,而是超过了万行,就拿它在客户端显示路径这个功能来说,就必须牵涉到XML解析、路径数据的转码(Google在传输路径的位置坐标时作了编码处理)、VML渲染、如果非IE则需要访问服务器以便让服务器程序画出路径并回传图片……如此林林总总,不一而足。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值