我不太擅长数学,所以遇到了一个问题。我有一条路线,从一条路到另一条路。有一段时间我试图在固定长度的路线周围应用彩色图。但是我无法获得圆满的圆 Angular ,而我缺乏数学能力使我变得一团糟。
现在我得到了这个
和代码
var r = [];
var bla = result.routes[0].overview_path;
for(i in result.routes[0].overview_path) {
r.push(new google.maps.LatLng(bla[i].lat()+z, bla[i].lng()-z));
}
bla.reverse();
for(x in bla) {
r.push(new google.maps.LatLng(bla[x].lat()-z, bla[x].lng()+z));
}
var kelias = new google.maps.Polyline({
path: result.routes[0].overview_path,
strokeColor: "#00000",
strokeOpacity: 1.0,
strokeWeight: 2
});
kelias.setMap(MAP);
fonas = new google.maps.Polygon({
paths: r,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35
});
fonas.setMap(MAP);
我只想询问一些信息说明,或者也许你们中的一些人已经完成了此功能并拥有一些功能
工作demo here。不知何故我需要得到相同的绘图结果。
解决方案
最佳答案
我在SO Path stroke algorithm (convert to triangles/quads) or other suggestions中找到了这个堆栈,那里有一个类似的问题,仅适用于C++。
答案是第3页this PDF中的算法(CONVOLVE算法)。
如果您可以在JSFiddle中创建一个可行的示例,则可以在其中编写解决方案。
- 编辑
经过一段时间的分析,您为life demo提供的链接中的脚本之后,我发现折线不是用javascript计算的,而是在服务器上计算的,并通过AJAX调用返回给某些PERL程序。
关于javascript - 折线周围的长度缓冲区,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7685633/