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

Валерий Валериевич (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Валерий Валериевич
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 След.
gisToolKit 64
 
Попробовал сейчас перевести на отдельное использование CreateSite_EP и AppendData ситы создаются и открываются без ошибок.

Но почему-то mapAppendPointGeo( hobj, PointLat, PointLon, 0 ) возвращает 0, при этом mapAppendSemantic( hobj, 11111, semanticStr.toLocal8Bit(), semanticStr.toLocal8Bit().count() ) выполненный чуть выше нуля не возвращает
Изменено: Валерий Валериевич - 06.09.2019 08:16:42
gisToolKit 64
 
30 августа. Размер показывает такой 6,21 МБ (6 518 784 байт).
Да с наименованием тоже заметил, но не стал отвлекать от основной проблемы (оставил на заусочку).

Ошибка открытия возникает такое ощущение, что отложено или при первом обращении к ситу. Я после CreateAndAppendSite_EP получаю количество объектов на карте и ошибка вылезает на SiteObjectCount()
CreateAndAppendSite_EP возвращает 0

Почту скинул вам на электронку с формы форума
Изменено: Валерий Валериевич - 06.09.2019 07:10:15
gisToolKit 64
 
vals.clear();
   vals.push_back( "c:\\app_development_64\\maps\\SITS\\reslocation_77.sit" );
   vals.push_back( "c:\\app_development_64\\maps\\SITS\\classifier.rsc" );
   vals.push_back( "11111" );

   CREATESITEUN createsite;
   createsite.MapType =0;                           //* Обобщенный тип карты */
   createsite.MaterialProjection =0;     //* Проекция исх. материала */
   createsite.Scale =0;                               //* Масштаб */
   createsite.FirstMainParallel =0;       //* Первая главная параллель */
   createsite.SecondMainParallel =0;     //* Вторая главная параллель  */
   createsite.AxisMeridian =0;                 //* Осевой меридиан */
   createsite.MainPointParallel =0;       //* Параллель главной точки */

   vals.push_back( createsite.MapType );
   vals.push_back( createsite.MaterialProjection );
   vals.push_back( createsite.Scale );
   vals.push_back( createsite.FirstMainParallel );
   vals.push_back( createsite.SecondMainParallel );
   vals.push_back( createsite.AxisMeridian );
   vals.push_back( createsite.MainPointParallel );

   axMapWidget->dynamicCall( "CreateAndAppendSite_EP(QString,QString,QString,int,int,int,double,double,double,double)", vals );
и вот какие фалый получились.

В файле  reslocation_77.sit вот такие буквы есть R U - M O W откуда берется хз
gisToolKit 64
 
c:/app\maps\SITS\reslocation_77.SIT
gisToolKit 64
 
да.
Точнее ожидается что должен быть именно reslocation_77 и он должен использоваться в дальнейшем при открытии сита, т.к. в этой папке могут быть reslocation_XXX файлики означающие регион
gisToolKit 64
 
У нас куплен gisToolKit Active Free
Под 32 бита все работало
Пересобрали под 64 бита весь проект и перестал открывать ситы.


RU-MOW это основной карты название
А в папке ситов создаются 4 файла

если *.shd и *.sda переименовать в RU-MOW.shd и RU-MOW.sda то сит открывается.

Создаю сит следующим образом
QList<QVariant> vals;
   vals.clear();
   vals.push_back( sitFileName.toStdString().c_str() );
   vals.push_back( RSCFileName.toStdString().c_str() );
QString mapName = "SIT_" + axMapWidget->property("MapName").value<QString>();
   vals.push_back( mapName.toStdString().c_str() );

   CREATESITEUN createsite;
   createsite.MapType =0;                           //* Обобщенный тип карты */
   createsite.MaterialProjection =0;     //* Проекция исх. материала */
   createsite.Scale =0;                               //* Масштаб */
   createsite.FirstMainParallel =0;       //* Первая главная параллель */
   createsite.SecondMainParallel =0;     //* Вторая главная параллель  */
   createsite.AxisMeridian =0;                 //* Осевой меридиан */
   createsite.MainPointParallel =0;       //* Параллель главной точки */

   vals.push_back( createsite.MapType );
   vals.push_back( createsite.MaterialProjection );
   vals.push_back( createsite.Scale );
   vals.push_back( createsite.FirstMainParallel );
   vals.push_back( createsite.SecondMainParallel );
   vals.push_back( createsite.AxisMeridian );
   vals.push_back( createsite.MainPointParallel );

   axMapWidget->dynamicCall( "CreateAndAppendSite_EP(QString,QString,QString,int,int,int,double,double,double,double)", vals );

создаются файлики и после этого появляется ошибка.

Подскажите, может я не правильно вызываю или может функции CreateAndAppendSite_EP или AppendData(QString,int) в 64 битной версии как-то по другому надо вызывать?
Изменено: Валерий Валериевич - 04.09.2019 13:29:36
Отображение в mapView объектов не из классификатора
 
Поиск заработал. mapSelectSeekAreaFrame объявил у себя со всеми переменными (до этого переменные по умолчанию не использовал). Видимо в них что-то.

Да вы все верно пишите про dframe  то что он в метрах.. но напирмер 5 метров на масштабе просмотра 2000 и на 2000000 это две большие разницы при клике по карте.
В общем решил эту проблему импирически подобрав что рамку надо брать +- 0.001 от текущего масштаба карты.

Спасибо за помощь
Отображение в mapView объектов не из классификатора
 
По первому вопросу вопрос решился. Спасибо.

По поиску объектов по клику. Делаю аналогично поиску по всей карте

HOBJ hObj = mapCreateSiteObject( mapHandle(), hsite );

HSELECT hSel = mapCreateSiteSelectContext( mapHandle(), hsite );

mapSetDrawObjectsFlag( hSel, 0 );

DFRAME mframe;
   mframe.X1 = PointX + 50;
   mframe.Y1 = PointY - 50;
   mframe.X2 = PointX - 50;
   mframe.Y2 = PointY + 50;

   mapSelectSeekAreaFrame( hSel, &mframe );

while( hObj = mapSeekSiteSelectObject( mapHandle(), hsite, hObj, hSel, inx++ == 0 ? WO_FIRST : WO_NEXT ) ){
      std::cout<<inx<<" finded"<<std::endl;
  }

Если на карте только точечные объекты то все ищет отлично. Единственное не на всех масштабах находит.
Если есть эти мои уже излюбленные квадратики(их тыщи полторы на сите).. то зависает на mapSeekSiteSelectObject не выдав ни одного каута в консоль. Так же зависает на запросе количества найденных объектов mapSeekSiteSelectCount( mapHandle(), hsite, hSel )
Подскажите, пожалуйста, чего не хватает?

И по масштабу (в примере +-50).. у меня PointX, PointY  в прямоугольной системе (PP_PICTURE)... Как габариты области поиска устанавливать правильно в зависимости от масштаба?
Изменено: Валерий Валериевич - 05.08.2019 09:01:26
Отображение в mapView объектов не из классификатора
 
Помогите, пожалуйста, разобраться с поиском объектов не из классификатора на сите.
Вот этот код находит только точечный объект (он из классификатора), а остальные объекты не находятся. Если точечных объектов несколько - то находятся все они, но только они.

HOBJ hObj = mapCreateSiteObject( mapHandle(), hsite );
HSELECT hSel = mapCreateSiteSelectContext( mapHandle(), hsite );

while( hObj = mapSeekSiteSelectObject( mapHandle(), hsite, hObj, hSel, inx++ == 0 ? WO_FIRST : WO_NEXT ) ){
       std::cout<<inx<<" finded"<<std::endl;
   }

опять же в панарама мини - проблем с ними нет.

А так же ткните носом, пожалуйста, в функцию аналогичную mapSeekSiteSelectObject но чтобы найти все объекты в точке.. я нашел mapSeekSelectNearestObject но там вроде как флаги WO_NEXT не работают.. или может как-то hSel добавить условие поиска вокруг какой-то точки... суть задачи найти все объекты на сите в радиусе 3-5 метров (пикселей)
Изменено: Валерий Валериевич - 22.07.2019 04:02:15
Выделение объекта поиска (Qt AXКомпонент или mapApi)
 
Вроде получилось, по большей части методом перебора. Найденный объект стал моргать 2мя цветами (белым и зеленым)
[IMG]https://i.postimg.cc/L56Q8dP2/output-onlineimagetools9.png[/IMG]
axMapFindObject->dynamicCall( "SetColorImage(QColor)", QColor( 255,255,255,100 ) );
axMapFindObject->dynamicCall( "SetColorImageUp(QColor) ", QColor( Qt::green ) );
axMapFindObject->setProperty( "StyleSelect", 3 );
axMapFindObject->setProperty( "Style", 2 );

Помогите, пожалуйста, добиться чтобы маргал только контур объекта, или выделение было полупрозрачным.
Посмотрите, пожалуйста, GIS ToolKit Active 12 Free .. в ашниках для С++ нет типов TxObjectStyleSelect, TxObjectStyle .. приходится инты подбирать
Изменено: Денис Вицко - 08.06.2022 09:33:46 (исправил вставку картинок)
Страницы: Пред. 1 2 3 4 5 6 След.



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

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