Найти середину отрезка Polyline

Есть ломаная Polyline, известны координаты её начала и конца.

Стоит задача разделить ломаную на 2 равные части, каждую из которых сделать разным цветом.

Пробовал решить геометрически по Формуле вычисления координат середины отрезка, но при больших расстояниях вычисляемая точка отклоняется от изначального отрезка. yandex map api

Есть ли варианты решения?


Ответы (1 шт):

Автор решения: YaCor'

Яндекс использует для карты проекцию Меркатора, поэтому всегда координаты центра надо считать, используя глобальные пиксельные координаты линии, а для отрисовки переводить обратно.

//Пикельные координаты линии:        
var linePixelGeo = myPolyline1.geometry.getPixelGeometry().getCoordinates(),
//Пиксельные координаты центра:
lineCenter = [(linePixelGeo[0][0]+linePixelGeo[1][0])/2,(linePixelGeo[0][1]+linePixelGeo[1][1])/2]
//Геокоординаты центра:
var geoLineCenter = myMap.options.get('projection').fromGlobalPixels(lineCenter, myMap.getZoom());

Не лучший пример, но результат виден: https://jsfiddle.net/Coroner1st/ze3jkwgb/

→ Ссылка