Попробовал сейчас перевести на отдельное использование CreateSite_EP и AppendData ситы создаются и открываются без ошибок.
Но почему-то mapAppendPointGeo( hobj, PointLat, PointLon, 0 ) возвращает 0, при этом mapAppendSemantic( hobj, 11111, semanticStr.toLocal8Bit(), semanticStr.toLocal8Bit().count() ) выполненный чуть выше нуля не возвращает
30 августа. Размер показывает такой 6,21 МБ (6 518 784 байт). Да с наименованием тоже заметил, но не стал отвлекать от основной проблемы (оставил на заусочку).
Ошибка открытия возникает такое ощущение, что отложено или при первом обращении к ситу. Я после CreateAndAppendSite_EP получаю количество объектов на карте и ошибка вылезает на SiteObjectCount() CreateAndAppendSite_EP возвращает 0
CREATESITEUN createsite; createsite.MapType =0; //* Обобщенный тип карты */ createsite.MaterialProjection =0; //* Проекция исх. материала */ createsite.Scale =0; //* Масштаб */ createsite.FirstMainParallel =0; //* Первая главная параллель */ createsite.SecondMainParallel =0; //* Вторая главная параллель */ createsite.AxisMeridian =0; //* Осевой меридиан */ createsite.MainPointParallel =0; //* Параллель главной точки */
axMapWidget->dynamicCall( "CreateAndAppendSite_EP(QString,QString,QString,int,int,int,double,double,double,double)", vals ); и вот какие фалый получились.
В файле reslocation_77.sit вот такие буквы есть R U - M O W откуда берется хз
да. Точнее ожидается что должен быть именно reslocation_77 и он должен использоваться в дальнейшем при открытии сита, т.к. в этой папке могут быть reslocation_XXX файлики означающие регион
CREATESITEUN createsite; createsite.MapType =0; //* Обобщенный тип карты */ createsite.MaterialProjection =0; //* Проекция исх. материала */ createsite.Scale =0; //* Масштаб */ createsite.FirstMainParallel =0; //* Первая главная параллель */ createsite.SecondMainParallel =0; //* Вторая главная параллель */ createsite.AxisMeridian =0; //* Осевой меридиан */ createsite.MainPointParallel =0; //* Параллель главной точки */
создаются файлики и после этого появляется ошибка.
Подскажите, может я не правильно вызываю или может функции CreateAndAppendSite_EP или AppendData(QString,int) в 64 битной версии как-то по другому надо вызывать?
Поиск заработал. mapSelectSeekAreaFrame объявил у себя со всеми переменными (до этого переменные по умолчанию не использовал). Видимо в них что-то.
Да вы все верно пишите про dframe то что он в метрах.. но напирмер 5 метров на масштабе просмотра 2000 и на 2000000 это две большие разницы при клике по карте. В общем решил эту проблему импирически подобрав что рамку надо брать +- 0.001 от текущего масштаба карты.
Если на карте только точечные объекты то все ищет отлично. Единственное не на всех масштабах находит. Если есть эти мои уже излюбленные квадратики(их тыщи полторы на сите).. то зависает на mapSeekSiteSelectObject не выдав ни одного каута в консоль. Так же зависает на запросе количества найденных объектов mapSeekSiteSelectCount( mapHandle(), hsite, hSel ) Подскажите, пожалуйста, чего не хватает?
И по масштабу (в примере +-50).. у меня PointX, PointY в прямоугольной системе (PP_PICTURE)... Как габариты области поиска устанавливать правильно в зависимости от масштаба?
Помогите, пожалуйста, разобраться с поиском объектов не из классификатора на сите. Вот этот код находит только точечный объект (он из классификатора), а остальные объекты не находятся. Если точечных объектов несколько - то находятся все они, но только они.
А так же ткните носом, пожалуйста, в функцию аналогичную mapSeekSiteSelectObject но чтобы найти все объекты в точке.. я нашел mapSeekSelectNearestObject но там вроде как флаги WO_NEXT не работают.. или может как-то hSel добавить условие поиска вокруг какой-то точки... суть задачи найти все объекты на сите в радиусе 3-5 метров (пикселей)
Вроде получилось, по большей части методом перебора. Найденный объект стал моргать 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 .. приходится инты подбирать