我不太擅长数学,所以遇到了一个问题。我有一条路线,从一条路到另一条路。有一段时间我试图在固定长度的路线周围应用彩色图。但是我无法获得圆满的圆 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。不知何故我需要得到相同的绘图结果。

解决方案
  • Buffered polyline using JSTS lib.
  • ArcGIS server solution
  • 最佳答案

    我在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/

    10-10 00:25