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

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

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

Страницы: Пред. 1 ... 6 7 8 9 10 11 12 13 14 15 16 ... 102 След.
В версии GisToolKit 14.2 изменен порядок создания подобъекта, MapObj2.Metric.CreateSubject
 
Здравствуйте!

Мы вместо имеющейся у нас ранее версии GIS ToolKit 14.1 Free
получили GIS ToolKit 14.2 Free

Похоже, что в ней изменен порядок создания подобъекта.
У нас ранее было так и работало:

// Создание подобъекта

 n := MapObj2.Metric.SubObjCount;
 n := MapObj2.Metric.CreateSubject;
 pc := MapObj1.Metric.PointCount[0];

  For i := 1 to pc do
  begin
  px := MapObj1.Metric.Points[0,i].X;
  py := MapObj1.Metric.Points[0,i].Y;
  mapAppendPointPlane(MapObj2.ObjHandle,px,py,n);
  end;

  mapCommitObject(form_main.MapObj2.ObjHandle);

  form_main.MapObj1.Style := OS_NORMAL;
  form_main.MapObj1.Repaint;
  form_main.MapObj2.Style := OS_NORMAL;
  form_main.mvMap.Repaint;

В версии 14.2 это перестало работать.
Вместо создания подобъекта по шаблону в редактируемом объекта,
вырезается в редактируемом объекта вся площадь по контуру.

Как теперь создаем подобъект,
просим подсказать,
что в вышеприведенном исходном коде не правильно?
Как увеличить временной интервал обновления карты из кэша на ГИС Сервере, TMapGisServer
 
[QUOTE]Денис Вицко написал:
С этим надо разбираться предметно.Что значит "обновление карты из кэша на ГИС Сервере"? Что за кэш на ГИС Сервере? ГИС Сервер тоже откуда-то получает данные (с другого ГИС Сервера, из СУБД)?Если в ГИС Панорама Вы вызываете обновление карты через Ctrl+F5, то это обновление кэша, а полное его перестроение - то есть карта полностью заново загружается с ГИС Сервера.[/QUOTE]
Денис, здравствуйте!
Спасибо за очень предметный и обстоятельный ответ.
По поводу первого, procedure SetTimerAdjustData(aInterval : integer);
отлично, будем разбираться и пробовать.
Изменено: Сергей Викторович - 15.11.2022 11:33:20
Как увеличить временной интервал обновления карты из кэша на ГИС Сервере, TMapGisServer
 
[QUOTE]Денис Вицко написал:
Все изменения, которые выполняются на карте, открытой с ГИС Сервера, передаются на сервер без задержек.[/QUOTE]
Денис, спасибо.
Ответ нас устроил ровно наполовину.
Первое, спасибо, что напомнили нам предназначение
mapAdjustData(HMAP hMap);
Мы конечно убрали эту команду из исходников,
т.к. понатыкали ее везде, а она оказывается не про это.
Здесь понятно.

А вот насчет второго вопроса, что в ядре GIS ToolKit нет возможности
установить таймаут обновления карты из кэша на ГИС Сервере,
это очень печально.
Вплоть до того, что придется отдельным пользователям-картографам перенести карту на локальный компьютер для ускорения их работы.  

Кстати тоже касается программы ГИС Панорама.
Она тормозит на 5 секунд в момент обновления карты из кэша на ГИС Сервере.
Изменено: Сергей Викторович - 14.11.2022 17:17:37
Как увеличить временной интервал обновления карты из кэша на ГИС Сервере, TMapGisServer
 
Здравствуйте!

Если мы правильно понимаем политику ГИС Сервера,
то мы понимаем ее так.
Пользователь внося изменения в объекты карты,
вносит на самом деле их в карту, размещенную в папке кэша.
Затем, через определенный интервал времени,
изменения, сделанные на карте кэша, синхронизируются с картой на ГИС Сервере.
Если, что-то не правильно мы понимаем, просьба поправить нас.
Если правильно мы понимаем, то просьба подсказать,
можно ли принудительно задать интервал времени,
через который прикладная программа будет обновлять сделанные изменения карты кэша и карты на ГИС Сервере?
Можно ли получить название слоя или номер слоя по объекту из классификатора, RscObject
 
Здравствуйте!

Можно ли получить в такой комбинации получить название слоя или номер слоя по объекту из классификатора?
mapGetRscObject(form_main.MapRsc1.RscHandle,i,RscObject);
LocInt := RscObject.Local;
ExCodeInt := RscObject.Code;
ObjName := String(RscObject.Name);

Разобрался.
LayerNum := RscObject.Segment;
Спасибо.
Изменено: Сергей Викторович - 09.11.2022 17:15:14
Поиск по площади объекта, MapFind.MapSelect
 
[QUOTE][QUOTE]Денис Вицко написал:
Методы компонентов GIS ToolKit никогда и не охватывали всю функциональность ГИС-ядра, представленную в виде MAPAPI-интерфейса.[/QUOTE]

[/QUOTE]
Хочется подискутировать.
Думается, что одно другим можно легко дополнять.
Почему бы не писать например так:
form_main.MapFind1.Active := false;
form_main.MapFind1.FindPoint := false;
form_main.MapFind1.MapSelect.Clear;
form_main.MapFind1.MapObj.Style := OS_SELECT;
form_main.MapFind1.MapSelect.ClearSemantic;
mapSelectMeasureAppend(form_main.MapFind1.MapSelect.SelectHandle[0],2,6,StrToFloat(Edit2.Text),3,StrToFloat(Edit3.Text));
form_main.MapFind1.Active := true;
form_main.MapFind1.First;
Что тут криминального?
Как-то вы писали, что не стоит смешивать методы ГТК и MapAPI. Почему нет?
Что удобно под рукой то и пиши.
Другое дело, что похоже не нужно делать крен в ту или другую сторону,
имею ввиду или ГТК или MapAPI.
И то и другое должно поддерживаться одинаково.
Или я не прав?
Поиск по площади объекта, MapFind.MapSelect
 
Да, Денис.
Я заметил что КБ Панорама семимильными шагами идет от визуальных компонентов к MapAPI
функциям. Так в версии 14.2 Free вдруг перестала работать добавление и запись семантики традиционным при применении визуальных компонент методом,
то что работало в 14.1 Free,
пришлось в срочном порядке переписывать тоже самое под MapAPI.
В целом понятен подход, будем разбираться и дописывать.
Спасибо за ответ.
Поиск по площади объекта, MapFind.MapSelect
 
Здравствуйте!

Поиск по номеру объекта работает очень хорошо,
просим подсказать, как также найти площадной объект,
по значению его площади?

MapFind1.Active := false;
MapFind1.FindPoint := false;
MapFind1.MapSelect.Clear;
MapFind1.MapObj.Style := OS_SELECT;
MapFind1.MapSelect.ClearSemantic;
// MapFind1.MapSelect.MinKey := StrToInt(Edit1.Text); // Вместо этого, хотелось бы указать значение площади объекта
// MapFind1.MapSelect.MaxKey := StrToInt(Edit1.Text);
MapFind1.Active := true;
MapFind1.First;
Почему сохраняется объект на карте, транзакция которого отменена, TMapEditMetric
 
[QUOTE]Денис Вицко написал:
Очистить объект в MapObj просто - метод  TMapObj.ClearObject [/QUOTE]
Спасибо, Денис.
Как всегда просто и доступно!
Можно ли прикрутить к пользовательскому приложению rscedit32.dll, Можно ли прикрутить к пользовательскому приложению rscedit32.dll
 
Все понятно.
Спасибо.
Страницы: Пред. 1 ... 6 7 8 9 10 11 12 13 14 15 16 ... 102 След.



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

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