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

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

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

Страницы: Пред. 1 ... 3 4 5 6 7 8 9 10 11 12 13 ... 102 След.
Как объединить два площадных объекта разного типа, mapSquareObjectsUnion
 
[QUOTE]
  [/QUOTE]
[QUOTE]Александр Кружков написал:
3. Альтернативный способ добавления вида контроля "Контроль самопересечений и входимости подобъектов": открыть файл Default.cxml в блокноте и строку  заменить на строки   [/QUOTE]
Выполнил вашу рекомендацию п.3
т.е. сделал корректировку своего старого файла Default.cxml
Результат после корректировки стал лучше.
Уменьшилось количество ошибок направления цифрования, вместо 10 осталось 6
Но все равно есть ошибки самопересечения 17
Можно ли и это поправить, чтобы в результате то и то было равно 0?
Как объединить два площадных объекта разного типа, mapSquareObjectsUnion
 
[QUOTE]Александр Кружков написал:
ид контроля добавлен в Default.cxml см. ссылку на файл (ниже).[/QUOTE]
Заменил наш файл Default.cxml на ваш Default.cxml
ScreenShort27.PNG результат после выполнения mapapi с параметром редактирование
ScreenShort28.PNG результат после выполнения mapapi с параметром просмотр результат контроля
Добавились 538 ошибок по контролю самопересечения
Затем просмотр результата осталось 38 ошибок самопересечений,
но направления цифрования увеличилось количество ошибок до 79.
Не пойму хорошо ли это или плохо?
Ожидалось количество ошибок после выполнения редактирования и просмотра
по контролю самопересечения 0
по направлению цифрования 0

Что я делаю не так?
Изменено: Сергей Викторович - 27.04.2023 16:25:15
Как объединить два площадных объекта разного типа, mapSquareObjectsUnion
 
[QUOTE]Александр Кружков написал:
В схему контроля (Default.cxml) необходимо добавить вид контроля "Топология. Контроль самопересечения и входимости подобъектов"[/QUOTE]
Да, интуитивно, так и думал, что в файле Default.cxml не хватает какого-то тега или чего-то еще.
Большая просьба к вам Александр, перед вашим постом, мой пост. К нему приложен файл Default.cxml
скачайте и посмотрите его, что в нем не хватает о том, что вы написали выше и добавьте прямо в это файл.
Приложение его к вашему ответу, мы заменим этот файл у себя.  
Как объединить два площадных объекта разного типа, mapSquareObjectsUnion
 
Сделали так:
schemeRsc := cntOpenScheme(form_main.MapRsc1.RscHandle, PChar(PathProgramm+'Default.cxml'));
cntMapChecking(schemeRsc,form_main.mvMap.MapHandle,form_main.mvMap.MapHandle,-1,2,WM_LOG,PChar(PathProgramm+'Protocol.htm'));
cntCloseScheme(schemeRsc);

В результате, программа исправила более 400 ошибок.
Отличный результат!

Остались только 10 ошибок направления цифрования.
Просим подсказать в каком теге файла Default.cxml можно еще поднастроить,
чтобы исправились последние 10 ошибок направления цифрования?

Воспользовались программой Панорама-редактор 14.
Выполнили задачу Контроль качества векторной карты.
В результате, кроме 10 ошибок направления цифрования, то что соответствует с таблице выше.
Панорама-редактор нашла еще другие ошибки см.скриншот. Не понятно почему?
Ссылку на один и тот же файл Default.cxml указали в обоих случаях.

Если выполнить код:
schemeRsc := cntOpenScheme(form_main.MapRsc1.RscHandle, PChar(PathProgramm+'Default.cxml'));
cntMapChecking(schemeRsc,form_main.mvMap.MapHandle,form_main.mvMap.MapHandle,-1,2,WM_LOG,PChar(PathProgramm+'Protocol.htm'));
cntCloseScheme(schemeRsc);
сообщает 10 ошибок направления цифрования

Если затем выполнить код:
schemeRsc := cntOpenScheme(form_main.MapRsc1.RscHandle, PChar(PathProgramm+'Default.cxml'));
cntMapChecking(schemeRsc,form_main.mvMap.MapHandle,form_main.mvMap.MapHandle,-1,1,WM_LOG,PChar(PathProgramm+'Protocol.htm'));
cntCloseScheme(schemeRsc);
сообщает 10 ошибок направления цифрования
и 31 ошибка контроль двойных точек

По факту программа Панорама-редактор 14
находит 10 ошибок направления цифрования
и 31 ошибка контроль двойных точек

Почему расхождения в таблицах после редактирования и затем просмотра,
разное количество ошибок контроля качества векторной карты?
Изменено: Сергей Викторович - 27.04.2023 15:15:12
Как объединить два площадных объекта разного типа, mapSquareObjectsUnion
 
[QUOTE]Елена Кузнецова написал:
В папке  sdk14.zip  есть описание интерфейса к функциям контроля объектов \include\cntapi.h[/QUOTE]
Нам такой вариант подходит.
Изменено: Сергей Викторович - 26.04.2023 13:00:08
Как объединить два площадных объекта разного типа, mapSquareObjectsUnion
 
[QUOTE]Елена Кузнецова написал:
При выполнении Контроля векторной карты программа выдает много ошибок.Проверяли в программе ГИС Панорама версия 14.5.5.113.[/QUOTE]
Наша компания обеспокоена фактом, что в GisToolKit Free нет возможности подключить библиотеку Контроль качества векторной карты,
подобно диалогам Изменение проекции векторной карты или Сортировка векторной карты.
Мы устанавливаем наше приложение, скомпилированное с библиотеками GisToolKit Free на АРМы пользователей.
Пользователи наносят объекты на векторную кару с помощью инструментов GisToolKit Free и вполне допустимо могут изменять топологию объектов карты.
Теперь получается, что мы должны от них требовать приобретения дополнительно ГИС Панорама 14 по цене сопоставимой со стоимостью GisToolKit Free 14.
Это нормально?
Как объединить два площадных объекта разного типа, mapSquareObjectsUnion
 
[QUOTE]Елена Кузнецова написал:
Объекты сшились некорректно, так как у объектов недостаточно точек для объединения.Сшивка выполняется по общим или прилегающим отрезкам. Для наиболее корректной сшивки точки объединяемых объектов должны быть согласованы. На примере:  У объекта Земельный участок нет точек в местах примыкания объектов Прилегающая территория.[/QUOTE]
Не уверен, что это правильное решение проблемы.
Объекты были нанесены на карту, они площадные и замкнутые так,
как это требует описание функции объединения объектов.
Как объединить два площадных объекта разного типа, mapSquareObjectsUnion
 
[QUOTE]Денис Вицко написал:
Пришлите, пожалуйста, карту с объектами до и после объединения на [URL=mailto:panorama@gisinfo.ru]panorama@gisinfo.ru[/URL][/QUOTE]
Отправили карты на указанную почту
Как объединить два площадных объекта разного типа, mapSquareObjectsUnion
 
Объединяем объекты разного типа следующим образом:
Var
i : integer;
hSite : Maptype.HSITE;
ObjectSquare : MapType.HOBJ;
IDObject : string;
begin
// Сначала найдем рассматриваемый ЗУ
MapFind1.Active := false;
MapFind1.FindPoint := false;
MapFind1.MapSelect.Clear;
MapFind1.MapObj.Style := OS_NORMAL;
MapFind1.MapSelect.AddSemantic(10,'111',SC_EQUAL);
MapFind1.Active := true;
MapFind1.First;
If not MapFind1.Eof then
begin
hSite := mapGetSiteIdent(mvMap.MapHandle,0);
 For i := 0 to 2 do // Начало рассмотрения прилегающих территорий
 begin
 ObjectSquare := mapCreateSiteObject(mvMap.MapHandle, hSite,KM_IDDOUBLE2, 0);
 mapRegisterObject(ObjectSquare, 10000607, OL_SQUARE);
 IDObject := copy(GetGuid,2,25);
 MapFind2.Active := false;
 MapFind2.FindPoint := false;
 MapFind2.MapSelect.Clear;
 MapFind2.MapObj.Style := OS_NORMAL;
 MapFind2.MapSelect.ClearSemantic;
 Case i of
 0: MapFind2.MapSelect.AddSemantic(10,'222',SC_EQUAL);
 1: MapFind2.MapSelect.AddSemantic(10,'333',SC_EQUAL);
 2: MapFind2.MapSelect.AddSemantic(10,'444',SC_EQUAL);
 end;
 MapFind2.Active := true;
 MapFind2.First;
  If not MapFind2.Eof then
  begin
  If i = 0 then
  mapSquareObjectsUnion(MapObj1.ObjHandle,MapObj2.ObjHandle,ObjectSquare,10,0)
  else
  mapSquareObjectsUnion(MapObj3.ObjHandle,MapObj2.ObjHandle,ObjectSquare,10, 0);
  MapObj3.ObjHandle := ObjectSquare;
  end;
 end; // Конец рассмотрения прилегающих территорий
mapAppendSemanticUn(ObjectSquare,10,PChar(IDObject),50);
mapCommitObject(ObjectSquare);
mapFreeObject(ObjectSquare);
MapFind2.Active := false;
MapFind2.FindPoint := false;
MapFind2.MapSelect.ClearAll;
MapFind2.MapObj.Style := OS_NORMAL;
MapFind2.MapSelect.ClearSemantic;
MapFind2.MapSelect.AddSemantic(10,IDObject,SC_EQUAL);
MapFind2.Active := true;
MapFind2.First;
 If not MapFind2.Eof then
 begin
 MapFind1.Active := false;
 MapFind1.FindPoint := false;
 MapFind1.MapSelect.Clear;
 MapFind1.MapObj.Style := OS_NORMAL;
 MapFind1.MapSelect.ClearSemantic;
 MapFind1.MapSelect.Excode[-1,OL_SQUARE] := false;
 MapFind1.MapSelect.Excode[10000118,OL_SQUARE] := true;
 MapFind1.MapSelect.Excode[10000119,OL_SQUARE] := true;
 MapFind1.MapSelect.Excode[10000180,OL_SQUARE] := true;
 MapFind1.Active := true;
 MapFind1.First;
  If not MapFind1.Eof then
  begin
   While not MapFind1.Eof do
   begin
   If MapCheckInside1.FullCheckObjects(0) = CHI_FIRSTIN  then
   SubObjCreate;
   MapFind1.Next;
   end;
  end;
 end;
end;
mvMap.Repaint;
ShowMessage('Готово');

В результате создается объединенный объект, см. скриншоты.
Для наглядности, его перенесли правее.
Созданный объект содержит вылеты точек.
Это же не нормально,
и контроль векторной карты не пропустит такое?

ScreenShort5.PNG если параметр установить не 10, а 0
mapSquareObjectsUnion(MapObj3.ObjHandle,MapObj2.ObjHandle,ObjectSquare,0, 0);
Изменено: Сергей Викторович - 19.04.2023 11:03:42
Как объединить два подобъекта, Как объединить два подобъекта
 
[QUOTE]Oleg Belenkov написал:
mapSquareObjectsUnion(HOBJ info1, HOBJ info2, HOBJ info, double precision, long int flag);[/QUOTE]
Олег Валентинович, здравствуйте!

Мы действительно применяли ранее данную функцию

res := mapSquareObjectsUnion(form_main.MapObj3.ObjHandle,form_main.MapObj2.ObjHandle,ObjectSquare,100,0);

Но, как я понимаю, это относиться к отдельным объектам, имеющих свой дискриптор.
На рисунке, как мы видим, это один объект карты, но с двумя подобъектами. Да, они соприкасаются, т.е. имеют одну общую сторону,
но в моем понимание, дискриптор объекта один,
подобъекты здесь причем?
Страницы: Пред. 1 ... 3 4 5 6 7 8 9 10 11 12 13 ... 102 След.



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

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