折线周围的长度缓冲区

Ern*_*ius 8 javascript maps jquery google-maps

我不擅长数学,所以我遇到了问题.我有一条路线从一个到另一个分散.有一段时间我试图在固定长度的路线上应用彩色地块.但我不能得到一个很好的圆角,而我缺乏数学让我变得非常残缺.

现在我明白了 在此输入图像描述

和代码

        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);
Run Code Online (Sandbox Code Playgroud)

我只是想询问一些信息方向,或者你们中的一些人已经有了这个功能并且有一些功能

在这里工作演示.不知怎的,我需要得到相同的绘制结果.

解决方案

yun*_*zen 4

我在 SO Path 笔划算法(转换为三角形/四边形)或其他建议中找到了这个堆栈,其中存在类似的问题,仅适用于 C++。

答案是此 PDF第 3 页中的算法(CONVOLVE 算法)。

如果您可以在JSFiddle中制作一个工作示例,我们就可以在那里编写一个解决方案。

- 编辑

经过一段时间的分析您为生活演示提供的链接中的脚本后,我发现折线不是在 javascript 中计算的,而是在服务器上计算并通过 AJAX 调用返回到某个 PERL 程序。