Ребята подскажите как скопировать обьекты с одной пользовательской карты на другую сохранив при этом их координаты ?
19.12.2018 18:32:42
Ребята подскажите как скопировать обьекты с одной пользовательской карты на другую сохранив при этом их координаты ?
|
|
|
|
20.12.2018 10:07:42
см. help:
Открыть карты совместно, установить объект в TMapObj, вызвать TMapObj.SetSite, сохранить объект (Commit). или то же самое с помощью MAPAPI - см. |
|||
|
|
20.12.2018 12:13:28
|
|||
|
|
20.12.2018 15:54:57
Совсем не то. Всё же надо бы Вам HOBJ - уникальный идентификатор экземпляра класса внутри, который выделяется для работы с объектами. Создать экземпляр класса - Освободить после использования - Настроить класс на объект карты можно с помощью |
|||
|
|
21.12.2018 14:29:54
|
|||
|
|
21.12.2018 14:49:47
где ошибка ? этот полсе выполнения этого кода переносится только 1 обьект и то последний что не так?
//iSumm - количество всего найденных обьектов a[i] := ObjectFind.InCode; //внутренний код обьекта //сортировка массива внутреннего кода for i := 0 to iSumm-1 do for j := i+1 to iSumm-1 do if a[i]>a[j] then begin k := a[i]; a[i] := a[j]; a[j] := k; end; // перенос объекта на необходимый слой for i := 1 to iSumm-1 do for j := i+1 to iSumm do if a[i] = a[j] then begin buttonSelect := MessageDlg('1.' + c[i]+ #10#13 + '2.' + c[i+1] + #10#13 +' удалить первый объект?', mtConfirmation, [mbOK, mbNo],0); if buttonSelect = mrOk then begin ObjectFind.SetSite(0); ObjectFind.CommitObjectAsNew; end; end;
Изменено: |
|
|
|
21.12.2018 14:51:38
если можно то желательно по шагам все обьяснить что за чем делать я не весь лексикон пинимаю пока что так как я сам по себе изучаю и много еще незнаю
|
|
|
|
21.12.2018 23:19:18
я добился того что объекты переносятся но без сохранения координат... как это сделать? т.е. перенести координаты вместе с объектом на другой слой.
|
|
|
|
09.01.2019 10:44:05
Не вдаваясь глубоко в Вашу логику, опишу принцип. Тот объект, который Вы обрабатываете, должен быть установлен в компоненте TMapObj. У Вас объект в TMapObj не меняется перед вызовом
Команда CommitObjectAsNew сохраняет объект как новый. Если ее вызывать на один и тот же объект, будет каждый раз создаваться на карте копия этого объекта. Внешний или внутренний код - это характеристики, определяющие соответствующий объекту условный знак в классификаторе. Они не определяют уникальность объекта на карте. Уникальным идентификатором объекта в листе карты является его ключ. Зная его, можно в любой момент настроить TMapObj на нужный объект карты (см. метод SeekObject). После того, как объект установлен в TMapObj, можно с ним выполнят какие-то действия. Например, SetSite и т.д. |
|||||
|
|
||||
© КБ Панорама, 1991-2024 Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности |