Клуб API Карт

Разбиение polyline на отдельные сегменты

Пост в архиве.
shasoft
5 августа 2009, 19:10

С помощью polyliny вывожу улицу. Улица большая. Больше 100 сегментов.

При увелечении до масштаба дома на экране показывается от 1-5 сегментов из всего набора.

Имеет ли смысл разбить polyline на отдельные polyliny-ы? Т.е. вместо одного объекта создать 100 и выводить их?

Менеджер объектов у меня уже есть, так что вновь созданные объекты будут автоматом отсекаться и на экране будет вместо одной большушей polyline выводится 1-5 отрезков, состоящих из двух точек.

Т.е. ускорит такое разбиение скорость работы или затормозит? И на сколько (хотя бы примерно)?


4 комментария
Вы можете выводить не все сегменты ломанной, если создатите ее с использованием метода fromEncodedPoints(), т.е. для каждой точки ломанной можно будет указать масштаб, начиная с которого она должна показываться.

Пример кодирования ломанной :
http://rodlex.narod.ru/examples/from-encoded-points.html (для всех вершин ломанной указан уровень, чтобы они показывались с самого первого масштаба).
Если бы ещё разработчики сделали функцию, которая бы автоматом определяла эти уровни :), то цены бы этой функции не было.
А так придется самому писать.
Сложно автоматизировать данный процесс для любой ломанной.

Если у Вас есть предложения, то с удовольствием выслушаю.
Разбивать на отдельные полилайны нет смысла. Это не даст ускорения, т.к. отрисовка итак оптимизирована (точки, выходящие за видимую область на некоторое расстояние не рисуются). Использовать fromEncodedPoints можно. Это позволит уменьшить количество точек на верхних масштабах, что благоприятно скажется на скорости.
По автосимплификации ваши пожелания приняты. Постараемся сделать в следующих версиях.