2010-11-15 232 views
3

我很好奇,谷歌地图是如何绘制在谷歌地图DIV元素蓝色路线。我知道如何在Canvas元素上做到这一点,但Google地图不使用HTML5画布,而是在DIV上绘制复杂的线条。Google地图如何在DIV上绘制路线?

他们是怎么做到的呢?

要明确:我想知道他们是如何画蓝线的时候,我们得到的路线并不怎么计算从点A到B的方向。

感谢

回答

4

前阵子,他们习惯使用呈现在服务器端的图像。目前的解决方案是在主流浏览器中使用矢量图形API。 AFAIK,他们现在使用SVG用于非IE浏览器(Mozilla SVG),IE使用VML(最高可达IE9 Beta)(VML on Wikipedia)。 IE9测试版支持SVG,所以我期望在未来能够看到使用SVG的IE9 +。

用Firebug或IE开发工具,你可以看到SVG(SVG标签)/ VML(形状标记)的标记。

编辑:读您的评论。我期望它能够正常渲染SVG/VML标记与实时更改(例如路由更改)的组合通过Javascript

+0

谢谢!我会检查API – arbithero 2010-11-15 21:49:47

0
+1

我不认为这真的回答了这个问题,它只是把它推出来,以“如何DirectionsRenderer”或“折线”工作“。 (编辑:你已经部分解决了我刚才讨论的链接唯一性问题:http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good -answers) – 2010-11-15 07:13:26

+0

谢谢。我想知道折线如何绘制。像使用什么标签或Javascript功能? – arbithero 2010-11-15 07:16:52

0

当您询问路线,解析点或地址时,Google的服务器将检索结果对象( APi Reference of Result Object)至极含有大量的用来绘制在地图中的“蓝线”的相关信息。在地图上绘制线条的功能是DirectionsRenderer.setDirections(response)

Inside setDirections,Google做的基本上是读取响应的LatLngs,并在地图中将其绘制为折线。多段线没有限制点。