Функция Geometry (CONVOLUTION) с использованием JavaScript или JQuery

Я пытаюсь сделать это 3 месяца - мне нужно создать полигон по направлению маршрута, как здесь:

Итак, я пишу это:

directionService.route(request, function(result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      directionsRenderer.setDirections(result);
        var r = [];
        var z = 0.5;
        var bla = result.routes[0].overview_path;
        for(var i=0 in result.routes[0].overview_path) {
            r.push(new google.maps.LatLng(bla[i].lat()+z, bla[i].lng()-z));
        }
        bla.reverse();
        for(var x=0 in bla) {
            r.push(new google.maps.LatLng(bla[x].lat()-z, bla[x].lng()+z));
        }

        var prva = new google.maps.Polyline({
            path: result.routes[0].overview_path,
            strokeColor: "#00000",
            strokeOpacity: 1.0,
            strokeWeight: 2
        });

        prva.setMap(map);

        druga = new google.maps.Polygon({
            paths: r,
            strokeColor: "#FF0000",
            strokeOpacity: 0.8,
            strokeWeight: 2,
            fillColor: "#FF0000",
            fillOpacity: 0.35
        });

        druga.setMap(map);

    } else {
      alert("Directions query failed: " + status);
    }
  });

но в некоторых случаях это хорошо, в некоторых случаях нет, поэтому мой код производит это:

Плохой случай:

ХОРОШИЙ случай:

Итак, как я могу решить эту проблему, чтобы получить хороший многоугольник по направлению маршрута ??? У кого-нибудь есть идея?

Как я могу реализовать это в моем коде:

Свертка Алгоритм

Есть ли решение для моей проблемы?

Есть ли другой способ создать то, что мне нужно?

Ответы на вопрос(1)

Ваш ответ на вопрос