﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Google Maps 技术研究</title><link>http://www.cppblog.com/cnmaps/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 09 Jun 2026 17:40:53 GMT</lastBuildDate><pubDate>Tue, 09 Jun 2026 17:40:53 GMT</pubDate><ttl>60</ttl><item><title>[转]Google Maps的内部机制(部分)</title><link>http://www.cppblog.com/cnmaps/archive/2006/02/23/3442.html</link><dc:creator>CNMap</dc:creator><author>CNMap</author><pubDate>Thu, 23 Feb 2006 07:10:00 GMT</pubDate><guid>http://www.cppblog.com/cnmaps/archive/2006/02/23/3442.html</guid><wfw:comment>http://www.cppblog.com/cnmaps/comments/3442.html</wfw:comment><comments>http://www.cppblog.com/cnmaps/archive/2006/02/23/3442.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/cnmaps/comments/commentRss/3442.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cnmaps/services/trackbacks/3442.html</trackback:ping><description><![CDATA[<P>原文：<A href="http://spaces.msn.com/gemtang/">http://spaces.msn.com/gemtang/</A><BR><BR>Google Maps 与以前的ArcIMS、MapXtreme等二次开发出来的系统有着本质的不同： </P>
<P>&nbsp; 1.地图预先生成，这一点是首当其冲的，说了很多次了。 </P>
<P>&nbsp; 2.地图切片，客户端同时下载。当地图窗口发生移动、缩放时，便需要下载新的图片来填充新的区域，在这里充分利用了浏览器（如IE）的多线程同时下载的功能，另外，下载过的图片无需再次访问服务器下载。缺点就是客户端编写需要大量脚本来支持。 </P>
<P>&nbsp; 3.由于服务器不是实时地根据矢量数据生成地图图片，就造成了地图数据无法及时更新。但若仔细察看，不难发现Google Maps上的数据其实大部分是道路交通、行政边界，其他的POI(Point Of Interests)信息并不是固化在地图上的，如此便使人觉得地图稍显单调，好在高质量的卫片影像弥补了此不足。Google通过客户端脚本技术，把用户的搜索结果（也就是各种POI数据）以“大头针”图片的形式展现在客户端浏览器上，比如有名的官方Pizza店示例。反过来一想，还真得佩服Google的设计：POI数据是经常更新的，而基础数据（Framework dataset，比如高级别的道路、桥梁、城市、湖泊等）则是很少变动的，即便是某些小道路发生变化，也可以很方便的生成该范围的地图斑块，这个工作量是较小的。 </P>
<P>&nbsp; 4.上面提到了POI数据，其实它是动态生成的（当然，也可以是静态的），这个怎么说呢？好比Google的网络爬虫找到了某个公司的门户网站，分析出了该页面的内容结构并找到了其联系方式：##,**Road,**City，通过Geocoding技术便可在地图上找到其位置。 </P>
<P>&nbsp; 5.由于地图图片的预生成，以前的WebGIS站点经常提供的“图层控制”功能便无法达到，其实，这个并不影响用户的使用体验——Google地图是如此的清晰明了，用那玩意儿干啥？ </P>
<P>&nbsp; 6.抛弃“鹰眼”窗口，也就是那个缩略图，可能有人觉得用起来不太习惯——因为你不知道目前浏览到具体哪个位置了。但是，想想看：全世界的地图，当你放到到很细节的地方时，鹰眼上的显示框会多么的小啊，丝毫没有意义。 </P>
<P>&nbsp; 7.在地图上弹出Info Window以显示详细信息，底层实现使用了XML和XSLT，的确在界面上和视觉上给人以冲击，而且这也的确是一个好主意——既很好的节约了页面空间，又方便了用户操作。 </P>
<P>&nbsp; 8.“图中图”。该功能可谓煞费苦心，看看人家就是做得细致，在弹出的Info window中还有一个小地图来显示周围的情况，还可以在小地图上进行缩放，有点儿类似放置了一个放大镜在那里，真够绝的。 </P>
<P>&nbsp; 9.疯狂的运用Javascript脚本，恰好现在的Web设计又回归Javascript，特别是自AJAX的流行以来，似乎有唤醒了大家对浏览器端的脚本的重视。Google Maps的脚本可不是一段两段，而是超过了万行，就拿它在客户端显示路径这个功能来说，就必须牵涉到XML解析、路径数据的转码（Google在传输路径的位置坐标时作了编码处理）、VML渲染、如果非IE则需要访问服务器以便让服务器程序画出路径并回传图片……如此林林总总，不一而足。</P><img src ="http://www.cppblog.com/cnmaps/aggbug/3442.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cnmaps/" target="_blank">CNMap</a> 2006-02-23 15:10 <a href="http://www.cppblog.com/cnmaps/archive/2006/02/23/3442.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>