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

mapSelectSeekAreaFrame

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

В сообщение вкладываю исходные тексты простейшей функции и рабочей карты (+ЛОГИ).  (СКАЧАТЬ)
Просьба пояснить почему число объектов найденных функцией mapSelectSeekAreaFrame  бесконечно (до конца не дождался) ?
Вопрос, когда будет выполнена ревизия всех топологичесикх функций ?
Неужели в КБ с математикой и геометрией нет дружбы?

П.С на карте около полутора тысяч объектов всего.
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Я бы ТАК не хулиганил с флагами WO_FIRST, WO_NEXT.
---
Кстати, есть функция mapSeekSelectObjectCount(). Её можно поюзать после вызова mapSelectSeekAreaFrame().
Изменено: Газонокосильщик - 09.01.2014 15:09:30
 
Цитата
Я бы ТАК не хулиганил с флагами WO_FIRST, WO_NEXT.
WO_FIRST = 0
WO_NEXT = 4
проверяем:
Код
   j :=0;
   while mapSeekSiteSelectObject(Map, SpcSite, curr, Select, 4*byte(J>0))<>0 do
   begin

     inc (j);
   end;

при j=0, флаг попадающий внутрь функции mapSeekSiteSelectObject  byte(J>0) = 0 при умножении на 4 = 0 что соотвествует WO_FIRST
после первого прохода j=1 b более,  
попадающий внутрь функции mapSeekSiteSelectObject  byte(J>0) = 1 при умножении на 4 = 4 что соотвествует WO_NEXT
---------
С этим разобрались.
2-е. Такая конструкция у меня используется во всех модулях причём много лет
3-е. Я никогда не пользовался функцией mapSelectSeekAreaFrame, это был первый раз... и после этих "событий" она попала для меня в разряд mapSeekObjectByNumber
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Добавить вызов mapSeekSelectObjectCount() и проверить религия не позволяет?
 
Цитата
Газонокосильщик пишет:
Добавить вызов mapSeekSelectObjectCount() и проверить религия не позволяет?
а вы проверили прежде чем написать сей пост?
попробуйте  :)
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Видимо произошёл какой то "хитрый" сбой в структуре карты, и в файл(ы) прописались "деффектные данные".
При открытии карты , происходит структурный контроль автоматически, начиная с 11-й версии НО
контроль структуры карты, ни к чему не привёл, "хитрый сбой" остался незамеченным.
Кроме того, этот сбой структуры, скорее всего, формирует для функций поиска условие, при котором один из циклов не заканчивается никогда.
Скорее всего, где-то сбрасывается смещение при чтении следующего блока в ноль, и цикл становится бесконечным.
-----
Это мнение выработано мной и коллегой, анализируя меняющуюся информацию внутри цикла.
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
Цитата
KFF пишет:
попробуйте
Пробовал, всё работает - http://gisweb.ru/forum/forum2/topic5824/messages/.
Изменено: Газонокосильщик - 10.01.2014 08:47:29
 
а у меня и ещё на 10 рабочих местах зависает.
Одно условие, карту сортировать и очищать от удалённых объектов не надо, это восстанавливает структуру.
Не тот глуп кто не знает, а тот, кто не знает где искать.
 
В каждом вопросе желательно указывать номера версий продуктов, чтобы проверка была идентичной.
Заниматься изысканиями со способами задания флажков (4*byte(J>0)) никто не будет.
Должно быть задано сначала WO_FIRST, а при следующих проходах - WO_NEXT.
Остальные варианты рассматриваться не будут.
 
Цитата
KFF пишет:
а у меня и ещё на 10 рабочих местах зависает.
Ещё раз - что возвращает mapSeekSelectObjectCount() :?:
Страницы: 1 2 След.
Читают тему (гостей: 1)



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

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