Добрый день, уважаемые коллеги!
Прошу Вашего совета как мне решить следующую задачу.
Проводится поиск объектов на многолистовой карте в заданной прямоугольной области.
Если область пересекает границы листов, то получается что один и тот же по смыслу объект оказывается в результатах поиска дважды. При этом он оказывается разрезан на несколько частей (на две).
Пример - запрос на поиск посреди моря на границе листов вернет два объекта моря.
Поиск проводится с помощью функции mapSelectAreaEx.
Затем объекты вписываются в прямоугольник, в котором проводился поиск, с помощью функции mapCreateObjectsCross. В результате из каждого объекта результата поиска получается 1 или более объектов, вписанных в прямоугольник.
Далее для задачи выясняются контуры этих объектов и поступают на дальнейшую обработку.
В итоге возникает неприятная для задачи ситуация. В результатах пересечения находятся объекты, которые по смыслу являются частями одного "прикладного" объекта. И получается что один "прикладной объект" (например, Балтийское море) представлен несколькими контурами (кусками, соответствующими объектам с разных листов).
Задача - сделать так, чтобы по возможности иметь объединенный общий контур для каждого прикладного объекта; то есть если поиск прошел по границе листов, то иметь не 2-3 объекта и соответсвенно контура, а один общий контур.
Подскажите пожалуйста, чем может помочь АПИ в решении этой задачи?
p.s. Важный ньюанс - карту исходную менять нежелательно, в идеале она открыта только на чтение.
* Быть может есть функции поиска, которые выдают объединенные объекты если поиск пересекает границу листов?
* Или быть может есть какие-то возможности уникально идентифицировать объекты с разных листов, которые представляют части одного "прикладного" объекта. Перечитывая документацию, я пока понял что это может быть семантика N9 "название объекта". Так ли это или может есть какие-то другие, более подходящие методы?
* Также быть может есть функции сшивки объектов или контуров?
* Мы можем и "сами" сшивать контура, но необходимо уметь быстро понимать какие объекты следует сшивать. Но в любом случае выяснять это например на основе анализа всех вершин кажется слишком дорогой идеей.
Заранее благодарю! Буду рад любой информации!
Прошу Вашего совета как мне решить следующую задачу.
Проводится поиск объектов на многолистовой карте в заданной прямоугольной области.
Если область пересекает границы листов, то получается что один и тот же по смыслу объект оказывается в результатах поиска дважды. При этом он оказывается разрезан на несколько частей (на две).
Пример - запрос на поиск посреди моря на границе листов вернет два объекта моря.
Поиск проводится с помощью функции mapSelectAreaEx.
Затем объекты вписываются в прямоугольник, в котором проводился поиск, с помощью функции mapCreateObjectsCross. В результате из каждого объекта результата поиска получается 1 или более объектов, вписанных в прямоугольник.
Далее для задачи выясняются контуры этих объектов и поступают на дальнейшую обработку.
В итоге возникает неприятная для задачи ситуация. В результатах пересечения находятся объекты, которые по смыслу являются частями одного "прикладного" объекта. И получается что один "прикладной объект" (например, Балтийское море) представлен несколькими контурами (кусками, соответствующими объектам с разных листов).
Задача - сделать так, чтобы по возможности иметь объединенный общий контур для каждого прикладного объекта; то есть если поиск прошел по границе листов, то иметь не 2-3 объекта и соответсвенно контура, а один общий контур.
Подскажите пожалуйста, чем может помочь АПИ в решении этой задачи?
p.s. Важный ньюанс - карту исходную менять нежелательно, в идеале она открыта только на чтение.
* Быть может есть функции поиска, которые выдают объединенные объекты если поиск пересекает границу листов?
* Или быть может есть какие-то возможности уникально идентифицировать объекты с разных листов, которые представляют части одного "прикладного" объекта. Перечитывая документацию, я пока понял что это может быть семантика N9 "название объекта". Так ли это или может есть какие-то другие, более подходящие методы?
* Также быть может есть функции сшивки объектов или контуров?
* Мы можем и "сами" сшивать контура, но необходимо уметь быстро понимать какие объекты следует сшивать. Но в любом случае выяснять это например на основе анализа всех вершин кажется слишком дорогой идеей.
Заранее благодарю! Буду рад любой информации!