На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

mapSeekNearVirtualPoint

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1 2 След.
RSS
mapSeekNearVirtualPoint
 
Здравствуйте господа разработчики !

Вопрос на наименованию темы.
Имеется линейный объект, у которого пара (или более) рёбер полностью совпадают.
Например, маршрут: Москва - Питер -Мурманск - Архангельск- Питер и снова Москва.
Анализируемая точка на входе функции mapSeekNearVirtualPoint - допустим Новгород.

Результат - точка на первом и крайнем участке (совпадающий) + номер сегмента линенйцного объекта (трассы)

Вопрос, как получить полный перечень сегментов ???
Пояснение: стоит задача, отсечь маршрут по последней точке доклада (ВТОРОМ результате вышеописанной функции), но я получаю постоянно сегмент номер "1"
Приходится писать громоздкий код, из созданием отдельного объекта, который отсекая первый участок, повтороно проверяет ближайшую точку.

+ дополнение (картинка)
Изменено: KFF - 22.12.2013 15:54:41
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
ссори что нарушаю правила поднимая (Up) тему, но видимо её просто не заметили разработчики.
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Функции для такого конкретного случая нет (предполагается, что метрика объекта состоит из не совпадающих сегментов).
 
Андрей Владиславович !
Продукция КБ Панорама, сферы их использования и применения за более чем 20 лет её существования очень далеко ушла от рамок "кадастра" и "полевых работ".
Этот факт, свидетельствует о том, что выпуклая метрика (правильная с точки зрения Ваших полевых и кадастровых идеологов метрики) не является эталоном для систем ГИС, а тем более для Вашей.
Пересекающиеся объекты и линейные объекты путанки, для большинства отраслей не являются вырожденными и не правильными.
Суть моего ответа заключается в том, что пора бы пересмотреть подход и диапозон функций на предмет корректности работы, с "неправильной" метрикой.

П.С. одно дело объект путанка с локализацией площадной, а другое произвольный линейный (маршрут того же туриста, машины в графе и так далее)
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Функция поиска ближайшей точки предполагает, что ей достаточно найти одну - согласитесь, что с задачей она справилась. Далее в зависимости от знания про исходные данные (их особенности) нужно принимать решение о качестве результата. На все случаи жизни написать одну единственную функцию не получится.
Все требуется здесь после получения информации о координатах ближайшего сегмента, так это перебрать все сегменты и определить сегмент с такими же координатами.
 
Андрей Владиславович, а я предполагал что приставка "mapSeek" выполняет поиск не только первого случая выполнения условия.
Цитата
Все требуется здесь после получения информации о координатах ближайшего сегмента, так это перебрать все сегменты и определить сегмент с такими же координатами.
теперь ясно, почему функции топологии работают так, как работают.
А если 2 участка пересекаются или исходят из одной вершины, а точка пересечения является ближайшей к моей?
Изменено: KFF - 09.01.2014 16:10:39
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Функция поиска дает координаты ближайшей точки. Эти координаты на плоскости будут иметь единственное значение.
Далее при необходимости нужно определить сколько дуг и вершин объекта проходят через эту точку (если объект имеет самопересечения).
Этот вопрос за рамками функции mapSeekNearVirtualPoint.
 
Вопрос, зачем называть функцию с приставкой "Seek", если в ней нет ни FIRST ни NEXT
ПО большому счёту, функция выполняет частую задачу, причём непонятно какой сегмент (номер точки) она вернёт при трёх (четырёх) совпадающих или пересекающихся сегментах
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Цитата
KFF пишет:
Вопрос, зачем называть функцию с приставкой "Seek"
ЕМНИП, в Паскале есть функция seek(), сдвигающая файловый указатель. Её сишный аналог - fseek().
Цитата
KFF пишет:
причём непонятно какой
Первый по ходу точек метрики объекта. Мало кто начинает поиск с хвоста и уж совсем мало ищущих в хаотичном порядке.
 
Цитата
Газонокосильщик пишет:  сдвигающая файловый указатель
Только эта функция не применяется к текущей. Текущая функция ищет значение FIRST.
Цитата
Первый по ходу точек метрики объекта
Да все уже это поняли. Вопрос в том, как найти следующие узлы (сегменты) в случаях указанных выше.
Если смотреть на это с точки зрения логики, то в описании должно быть указано уточнение

Цитата
// Найти ПЕРВУЮ точку на контурах объекта и подобъектов, ближайшую к заданной
// ......
_MAPIMP  long int _MAPAPI mapSeekNearVirtualPoint(HMAP hMap, HOBJ info, DOUBLEPOINT * pointin,  DOUBLEPOINT * pointout);
Не тот глуп кто не знает, а тот, кто не знает где искать.
Страницы: 1 2 След.
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности