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

Dmitry S (Все сообщения пользователя)

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

Страницы: Пред. 1 2 3 4 5 6 7 8 След.
mapSampleSelect + mapSelectSemanticAppend в одном контексте
 
Хотелось бы уйти от перебора, групповые объекты могут состоять из 8-10т (
mapSampleSelect + mapSelectSemanticAppend в одном контексте
 
Вот что делал:
[CODE]
procedure TForm14.FormCreate(Sender: TObject);
Var
 i, cnt: Integer;
begin
 pth := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));
 MapScreen1.MapOpen(pth+'0.sit', true);
 Map := MapScreen1.MapHandle;

 Site1Name := '1.sit';
 Site2Name := '2.sit';

 id1 := MapScreen1.MapSites.Append(pth+Site1Name);
 id2 := MapScreen1.MapSites.Append(pth+Site2Name);

 Site1:= MapScreen1.MapSites[id1].SiteHandle;
 Site2:= MapScreen1.MapSites[id2].SiteHandle;

 sel1 := MapScreen1.ViewSelect.SelectHandle[id1];
 sel2 := MapScreen1.ViewSelect.SelectHandle[id2];
//  sel1 := mapCreateMapSelectContext(Map);
//  sel2 := mapCreateMapSelectContext(Map);

 ListBox1.Items.Clear;
 Cnt := mapGetSiteObjectCount(Map, Site1);
 for I := 1 to Cnt do
   // не удален
   if mapReadObjectByNumber(Map, Site1, MapObj1.ObjHandle, 1, i) > 1 then
     // простой или голова группы
     if MapObj1.Semantic.FindByCode(32802)=0 then
       ListBox1.Items.Add(IntToStr(MapObj1.Key));

 ListBox2.Items.Clear;
 Cnt := mapGetSiteObjectCount(Map, Site2);
 for I := 1 to Cnt do
   if mapReadObjectByNumber(Map, Site2, MapObj1.ObjHandle, 1, i) > 1 then
     if MapObj1.Semantic.FindByCode(32802)=0 then
       ListBox2.Items.Add(IntToStr(MapObj1.Key));

end;

procedure TForm14.FormDestroy(Sender: TObject);
begin
//  mapDeleteSelectContext(sel1);
//  mapDeleteSelectContext(sel2);
end;

procedure TForm14.ListBox1Click(Sender: TObject);
Var
 i: Integer;
begin
 mapClearSelectContext(sel1);
 mapSetSampleComplex(sel1,1);

 for I := 0 to ListBox1.Items.Count-1 do
   if ListBox1.Selected[i] then
   begin
     mapSelectSample(Sel1, GtkPChar(GtkString(Site1Name)), StrToInt(ListBox1.Items[i]));

     mapSelectSemanticAppend(Sel1, ORD(SC_EQUAL), 32802, GtkPChar(GtkString(ListBox1.Items[i])));
     mapSelectSemanticAppend(Sel1, ORD(SC_EQUAL), 32801, GtkPChar(GtkString(ListBox1.Items[i])));
   end;
 mapscreen1.Repaint;
end;

procedure TForm14.MapScreen1MapPaint(Sender: TObject; aCanvas: TCanvas;  MapPaintRect: TRect);
var
 dp : TDOUBLEPOINT;
begin
 dp.X := MapScreen1.MapLeft;
 dp.Y := MapScreen1.MapTop;
 mapViewSelect(Map, MapScreen1.Handle, dp, Sel1, clRed, cPP_PICTURE);
//  mapViewSelect(Map, MapScreen1.Handle, dp, Sel2, clBlue, cPP_PICTURE);
end;
[/CODE]
mapSampleSelect + mapSelectSemanticAppend в одном контексте
 
1. Изначально планировал создавать sel1 и потом его устанавливать для сита. (mapSetSiteViewSelect Осталось от того варианта)
3. потом пробовал взять sel1 = MapScreen1.ViewSelect.SelectHandle[id1]

2. конечная цель
- есть карта и к ней 2 пользовательских сита.  
- На ситах много полигональных областей, они пересекаются и показывать их всех не надо т.е. видимость ситов отключена.
- создается два(по кол-ву ситов) окошка со списками с  № объектов, куда собираются простые объекты и головы групп.
- При селектировании(мульти) в списке, на основной карте селектируются соответствующие объекты и/или группы обектов карты.
Причем для каждого сита своим цветом.
mapSampleSelect + mapSelectSemanticAppend в одном контексте
 
Спасибо, но не получилось.
[URL=http://gisweb.ru/forum/messages/forum2/topic4871/message32223/#message32223]почитал[/URL]
еще больше запутался
mapSampleSelect + mapSelectSemanticAppend в одном контексте
 
Может плохо искал, но не нашел как в одном контексте объединить результаты apSampleSelect + mapSelectSemanticAppend
Задача простая, может не с той стороны подошел.
Надо сделать мультиселектирование объектов пользовательской карты.
Объекты м.б. простые и групповые.

При запуске, номера объектов читаются в список (ListBox1.Items)
при селектировании\мультиселектировании элементов списка, селектируются объекты карты

Виделось простое решение ))) :
[CODE]procedure TForm14.ListBox1Click(Sender: TObject);
Var
 i: Integer;
begin
 mapClearSelectContext(sel1);
 mapSetSiteViewSelect(Map, Site1, sel1);

 for I := 0 to ListBox1.Items.Count-1 do
   if ListBox1.Selected[i] then
   begin
     // выделение группы по групповой хар-ке
     mapSelectSemanticAppend(Sel1, ORD(SC_EQUAL), 32802, GtkPChar(GtkString(ListBox1.Items[i])));
     mapSelectSemanticAppend(Sel1, ORD(SC_EQUAL), 32801, GtkPChar(GtkString(ListBox1.Items[i])));
     // выделение простого по номеру
     mapSelectSample(Sel1, GtkPChar(GtkString(Site1Name)), StrToInt(ListBox1.Items[i]));
   end;

 MapScreen1.ViewSelect.SetSiteEnabledForSample;
 MapScreen1.SetViewSelected(true, clRed);
 mapscreen1.Repaint;
end;
[/CODE]

но mapSelectSemanticAppend и mapSelectSample у меня работают только по отдельности.
Подскажите где допилить.
Спасибо

Delphi XE3, GTK11
Изменено: Dmitry Stasev - 24.05.2016 09:50:10
GIS ToolKit (версия 11.10.) Ошибка установки под ХЕ3
 
Спасибо все установилось.
GIS ToolKit (версия 11.10.) Ошибка установки под ХЕ3
 
Нашел у себя GIS ToolKit 11.8.5
Установилось без проблем под ХЕ3 (хоть инсталляшка до ХЕ2)
Так что, что-то в последнем релизе не так.
GIS ToolKit (версия 11.10.) Ошибка установки под ХЕ3
 
Привет, скачал с сервера GIS ToolKit (версия 11.10.) от 15.07.2013
Попытался установить под DELPHI XE3, не компилируется, сыпет ошибками, начиная с:
"[dcc32 Error] maputil.pas(1170): E2010 Incompatible types: 'PAnsiChar' and 'PWideChar'".

1. запустил сетап
2. указал в среде путь к исходникам
3. скопировал все из c:\Program Files (x86)\Embarcadero\RAD Studio\10.0\GisTool11\PackageAll\BdsXE3\ в папку с исходниками

Что-то не пойму в чем проблема, похоже с исходниками, но система чистая была.
__
Система Win8-64
Delphi XE3
Описание формата mtw
 
Здравствуйте, можно ли, если да, то как получить описание формата mtw?
Импорт из GRD
 
Здравствуйте, Александр.
Скачал версию panorama11up.zip 11.9.8 проверить.
1. Да в этой версии загрузились обе матрицы, но если присмотреться, то видно, что вторая(нижняя) - с ошибкой: http://files.mail.ru/8C8UHB
2. эти 2 матрицы идентичны (за исключением записи пустых значений  -1111111 для sfc_1.grd и -1111111.000 для sfc_2.grd) поэтому они не отражены относительно друг друга, а вот относительно оригинального изображения отражены (слева - фотомод, справа - панорама): http://files.mail.ru/GB7RF6

ps
к сожалению, на почту ответ не дошел.
__
с уважением, Д. Стасев
Страницы: Пред. 1 2 3 4 5 6 7 8 След.



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

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