【发布时间】:2018-05-14 23:11:15
【问题描述】:
我发布这个问题是因为我发现的大多数问题并没有真正回答我的问题,我终于弄明白了。希望这对其他人有所帮助,以便更快地解决问题。
-编辑- 我已经编辑了这个问题,希望它对遇到这个问题的人更有用。
-问题- 我无法将多条折线加载到谷歌地图中。我尝试将数组传递给新的 google.maps.Polyline 函数,如下所示;
var flightPlanCoordinates = [
{ lat: 41.7171899900261, lng: -85.002969973285587 },
{ lat: 41.716339720601695, lng: -85.00356011920411 },
];
var flightPlanCoordinates2 = [
{ lat: 44, lng: -89 },
{ lat: 49, lng: -89 },
];
var arrayOfFlightPlans = [flightPlanCoordinates, flightPlanCoordinates2];
var flightPath = new google.maps.Polyline({
path: arrayOfFlightPlans,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 4,
});
flightPath.setMap(map);
这不起作用并导致错误“InvalidValueError: at index 0: not a LatLng or LatLngLiteral: in property lat: not a number”
我的下一次尝试涉及尝试如下的 for 循环(注意 lat lng 数组与上面的代码 sn-p 没有变化);
for (let i = 0; i < 2; i++) {
var flightPath = new google.maps.Polyline({
path: arrayOfFlightPlans,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 4,
id: segID
});
}
flightPath.setMap(map);
这有效,但没有提供我希望的结果。 lat lng 输出是我数组中的最后一组坐标。我究竟做错了什么?循环不应该在for循环的每次迭代中建立一条新的折线吗?
【问题讨论】:
-
回答你自己的问题完全没问题,但请尽量详细解释问题和答案。
-
您能提出一些改进问题和答案的建议吗?这个问题对我来说似乎相当直截了当,如何绘制多条折线?就我的回答而言,它与 google 提供的文档没有太大区别,我添加了第二组坐标、这些坐标的数组以及包含文档中新的 google.maps.Polyline 命令的 for 循环。我的回答基本上是,将文档中的所有内容移到 for 循环中并提供多个坐标。
-
我不是投反对票的人。您可以阅读来自 100 万点用户 codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question 的建议,继续努力!
-
我希望人们能解释他们的反对意见。没有解释的否决票不是很有帮助。我已经更新了问题和答案,希望能让它们变得更好。感谢 Gotiasits 的建议。
标签: javascript google-maps-api-3 google-polyline