1

我正在尝试在地图的单个实例上渲染多个方向(本质上是它们的折线)。在以前版本的地图 API 中,我做了类似的事情

//directions[] stores the GDirections objects
//x[] is an array of Elements extracted from an XMLHTTPResponse object
//iterating over the values in x[]
GEvent.addListener(directions[i], "load", function() {
 var polyline = this.getPolyline();
 map.addOverlay(polyline);
 polyline.setStrokeStyle({opacity:0.2})
 });

directions[i].load("from:here to:"+x[i].childNodes[0].nodeValue,{getPolyline:true});

现在有了 DirectionsService 和 DirectionsRenderer 类,我不知道做同样事情的最佳实践是什么。我是否创建了 DirectionsRenderer 类的多个实例并让它们对主地图的实例执行 setMap()?我是否创建了 DirectionsServices 类的多个实例。

一般来说,我对 javascript 和函数式语言非常陌生,几乎没有尝试理解函数式闭包,因为它们与回调有关。也为格式化道歉。

任何帮助将不胜感激,我将尝试澄清您可能提出的任何问题。

4

2 回答 2

1

嘿 Ephraim,在研究了几个小时并尝试了不同的解决方案后,我想出了这个,您需要创建 DirectionsRenderer 的不同实例并(这很重要!)在响应函数中创建 DirectionsService 实例。此链接将引导您走向正确的方向。

于 2010-10-22T13:57:19.187 回答
0

使用发布的@ifaour 链接,我制作了一个肮脏的演示。因为我的目的要求每个方向对象有多个唯一的航点,所以我把那个片段做得更远一点,为航点创建数组:这里是演示的链接……一切都是内联的。:D

这是一组非常脏的代码(我是中级)......无论如何,如果可以的话,清理它

于 2011-03-31T10:32:51.107 回答