Клуб API Карт

Оптимизация встроенных алгоритмов yandex-maps api

qyp
11 августа 2016, 19:41

Добрый день!

Столкнулся с такой проблемой, что очень медленно работает функция поиска объектов внутри полигона: routeObjects.searchInside(moscowPolygon)

Убедиться можно построив маршрту из Москвы до Якутска и найти сегменты маршрута лежащие внутри МКАД: http://jsfiddle.net/m2q8s3rn/

В алгоритм поиска вхождения списка объектов в полигон прошу добавить, оптимизацию следующего плана: перед поиском необходимо упростить полигон до квадрата в который он вписан (4 вершины получаются перебором  минимумов и максимумов всех вершин) и перед проверкой вхождения точки объекта в полигон, проверять вхождение точки в квадрат (делается это легко, одним оператором if с 4 условиями), таким образом львиная доля неподходящих точек будет отсечена на этапе этой проверки и не будет запускаться более сложный алгоритм проверки вхождения точки в полигон.

2 комментария
Подписаться на комментарии к посту
Спасибо за предложение. Я передал его разработчикам
Сделаем немного получше. Давно пора.