Мне нужно рассчитать многоугольные шнуры вокруг полилинии, используя PHP.
Таким образом, вход выглядит как
[42.8476193, -78.8186415]
[42.8476193, -78.8186415]
[42.8476974, -78.8183599]
[42.847746, -78.818281]
[42.84806, -78.81784]
[42.848293, -78.817524]
[42.848507, -78.817246]
[42.848708337614, -78.816972090002]
[42.848710725944, -78.816968742025]
выходными данными будут шнуры многоугольника заданной ширины.
показано на карте ниже .. это должно рассчитать шнуры зеленого многоугольника на основе полилинии (синие) шнуры
Благодарю вас
Позволять а также б быть двумя последовательными точками на вашей полилинии. Построить вектор v =б— что указывает на в б. Нормализовать v, чтобы иметь длину 1; Я все еще буду называть это v.
Повернуть на 90 градусов против часовой стрелки. Если v = (x, y), то vrot = (-y, x). В заключение,
генерировать очки + w vrot и б + w vrot, где w — полуширина вашего коридора. Сделайте то же самое для вращения по часовой стрелке, vrot = (y, -x).
Других решений пока нет …