首页 - Ajax专区 - 评论研究

GoogleMaps探秘

发布时间: 2007-03-19 12:40    作者: 未知    来源: 未知    浏览:    评论

Google Maps 返回给前台的数据为 xml 格式,由前台的 JS 脚本解析后作相应的处理。
这里有这样一个 xml 文件的例子。在这里面实际上只有 center 和 span 是必须的。客户端的脚本通过中心点位置和地图跨度自动像服务器请求相应的图片。
<?xml version="1.0"?>
<page>
<center lat="49.29" lng="-123.12"/>
<span lat="0.017998" lng="0.027586"/>
</page>
以上就是 Google Maps 主要的功能。我这里主要从客户端的角度来介绍,服务器端所提供的功能并未涉及。服务器端主要的作用是存储数据。按照目前 15 个缩放级别,每个级别都要保留大量的贴图文件,有人计算过,即使乡村、荒地的很多地方不需要地图,可以使用透明图片代替,北美地区总共的数据量大约在几十太的级别。Google 有世界上最强大的廉价 PC 服务器构成的 Linux 集群。存储这些数据并且提供良好的性能是完全没有问题的。

其它的公司和个人是否可以使用 Google Maps 的技术?
其它的公司和个人完全可以使用 Google Maps 的服务。目前 Google 尚未对这一服务进行收费。因此你可以从 Google 的服务器上请求图片,通过在你自己的服务器显示给客户。刚才我做的演示完全是在本地运行的,所有的 xml 数据和 js 脚本全部都在本地,仅仅是贴图来自于 Google 的服务器。Google 的 JS 脚本是有版权的,我这里仅仅是出于研究的目的,把脚本下载到本地,做了一些修改以便于研究。对于商业应用,可能不能这样做,可以在页面中直接使用 Google 服务器上的脚本。因此使用 Google Maps 的方式就是在你自己的服务器上面生成定制的地图数据,通过 XMLHttp 请求到客户端,使用 Google Maps 的脚本解析,然后从 Google 请求贴图数据。除了你自己的地图数据外,还可以从其它服务器上获得地图数据,例如从 Google 的服务器上获得数据。不过因为 XMLHttp 只能从本域获得数据,为了获得来自其它域的数据,需要在服务器端用 Servlet 实现一个代理,这个 Servlet 从其它域得到地图数据后返回给客户端。这样一个 Servlet 写起来是非常简单的,只需要几行代码。同时在客户端需要对 XMLHttp 对象做一个包装,使得新的对象可以请求来自不同域的数据。
Google Maps 可以定制,Google 为定制 Maps 服务提供了很多的便利。定制的方法就是提供自己定义的地图数据文件,在刚才这个文件中,overlay 中就是开发者定制的内容。其中定制了两个点,当用户点这两个点的时候,会出现这两个地点的说明文字。说明文字的产生使用了 XSLT 技术。例如我制作一个全部 New York 市的中餐馆地图,我可以把每个餐馆的电话号码、联系人姓名等等信息加在上面。Google Maps 把这些接口提供出来允许开发者与他们与他们合作,开发出来面向不同领域和群体的地图服务来。通过出让一部分利润来扩大其影响力,是精明的商业行为。
Google Maps 的突出优点:
1、功能完善,具有常规地图服务所有的功能。
2、性能优良。用户几乎从来不需要长期的等待。
3、支持多种浏览器,目前 Google Maps 支持的浏览器包括以下这些:
IE 5.5+ (Windows)
Firefox 0.8+ (Windows, Mac, Linux)
Safari 1.2.4+ (Mac)
Netscape 7.1+ (Windows, Mac, Linux)
Mozilla 1.4+ (Windows, Mac, Linux)
Opera 7.5+ (Windows, Mac, Linux)
已经囊括了目前所有主流的浏览器。
Google Maps 通过自己开发的一套组件库封装了 IE 与其它浏览器的差别。主要的差别包括 XMLHttp、XMLDom 对象的创建语法,还有事件处理机制的不同。并且 Google Maps 尽量采用符合 Web 标准的技术,使得针对不同浏览器开发分支代码的情况变得最小。
4、通过大量采用客户端的技术,放弃了传统的基于 HTML Form 的交互模式,因此使得用户获得了更好的交互体验。
5、完全的组件化和面向对象开发。
Google Maps 组件和面向对象设计的水平是非常高的。所有主要的的控件全部封装为对象,使用面向对象的方式进行操作。

TAG

Smile Big Smile Surprise Stick out tongue Wink Sad Tongue Tied Indifferent Crying Embarrassed Cool Angry Angel Devil [8-|] [:#] [:-*] [:^)] [<:o)] [|-)] Yes Beer Left Hug Music Star Time Snail Pizza Automobile Umbrella Computer Storm [mo] [8o|] [^o)] [+o(] [*-)] [8-)] Coffee No Drinks [Z] Right Hug Cake Broken Heart Gift Wilted Flower Movie Dog Idea Sleep Email Travel Paradise
呢称:

加粗 斜体 下划线 链接 图片 代码 邮件地址 引用 列表

最多只能输入100个字符