На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты
АРХИВ ФОРУМА...
здесь вы можете ознакомиться с материалами форума до 08.06.2008

Денис Вицко (Все сообщения пользователя)

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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 70 След.
Поиск минимального пути
 
Ответил Вам тут -[URL=http://gisweb.ru/forum/forum2/7339] http://gisweb.ru/forum/forum2/7339[/URL]

Просьба не плодить темы с одним и тем же вопросом, а также не стоит оживлять темы, завершенные несколько лет назад.

Ошибка тут в первом параметре.
[QUOTE]Александр Махин написал:
MapNet1.GetNodeByPoint(MapObj.ObjHandle, ref tdp2);
[B]MapNet1.GetShotWayByPointAndCreateObject(r, ref tdp1, ref tdp2);[/B]
MapObj.CommitObject();[/QUOTE]
Маршруты
 
Метод GetShotWayByPointAndCreateObject первым параметром принимает Handle экземпляра класса в памяти для работы с объектами карты.
В него следует передать MapObj.ObjHandle.

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

В виде открытого исходного кода представлена задача "Контроль и исправление метрики объектов", доступная в составе [URL=http://gisinfo.ru/download?id=229]SDK12[/URL].
GTK Active: Получение всех объектов чертежа по слоям
 
[QUOTE]Я использую GIS ToolKit Active и в документации по фильтрации объектов никаких похожих настроек не нашел <noindex><a href="http://help.gisserver.ru/_extra/axGisTool/axGisTool/aimapselect.html" target="_blank" rel="nofollow">http://help.gisserver.ru/_extra/axGisTool/axGisTool/aimapselect.html</a></noindex>[/QUOTE]

Да, в настоящее время соответствующего свойства нет в aiMapSelect.
В какой среде Вы используете GIS ToolKit Active? У Вас есть возможность вызывать функции MAPAPI из ГИС-ядра?
Выделение объекта поиска (Qt AXКомпонент или mapApi)
 
[QUOTE]Валерий Валериевич написал:
Посмотрите, пожалуйста, GIS ToolKit Active 12 Free .. в ашниках для С++ нет типов TxObjectStyleSelect, TxObjectStyle .. приходится инты подбирать[/QUOTE]

Всё есть, только не в "ашниках".

[URL=http://help.gisserver.ru/_extra/axGisTool/axGisTool/txobjectstyle.html]Перечислимый тип TxObjectStyle[/URL]
[URL=http://help.gisserver.ru/_extra/axGisTool/axGisTool/txobjectstyleselect.html]Перечислимый тип TxObjectStyleSelect[/URL]

Посмотрите реализацию в примере: ...\GISToolActive12\Example\MS2012\C#\Myfirst\ (см. First.cs).
использование mapObjectCode
 
[URL=http://help.gisinfo.ru/showresult.php?file=mapapi.htm&search=mapObjectCode#1]Функция mapObjectCode[/URL] возвращает внутренний код.
Из названия видно, что этот код предназначен для внутреннего использования на время сеанса работы.
Без изменения классификатора этот код поменяться не должен, но это не гарантируется.

Для того, чтобы можно было "привязаться" к объектам классификатора лучше использовать внешний код ([URL=http://help.gisinfo.ru/showresult.php?file=mapapi.htm&search=mapObjectExcode#1]mapObjectExcode[/URL]) или ключ объекта ([URL=http://help.gisinfo.ru/showresult.php?file=mapapi.htm&search=mapObjectRscKey#1]mapObjectRscKey[/URL] или [URL=http://help.gisinfo.ru/showresult.php?file=mapapi.htm&search=mapObjectRscKey#1]mapObjectRscKeyUn[/URL]).
Вот эти значения не меняются даже при добавлении или удалении объектов из классификатора.
Поменять их можно только принудительно.
Нанесение объекта на карту с заполнением семантики, C# + GIS ToolKit Active 11
 
Объекты у Вас, судя по отсутствию классификационного кода и ключа, получились графические. То есть им не установлен уловный знак из классификатора.

При этом, объекты у Вас линейные, а не площадные.

Установить описание объекта карты - [URL=http://help.gisserver.ru/_extra/axGisTool/axGisTool/axmapobj_setobjectbyexcode.html]axMapObj.SetObjectByExcode[/URL]
Установить описание объекта, используя диалог - [URL=http://help.gisserver.ru/_extra/axGisTool/axGisTool/axmapobj_setobjectbydlg.html]axMapObj.SetObjectByDlg[/URL]

Можно сразу создавать с нужным кодом и локализацией, тогда дополнительно устанавливать не придется - [URL=http://help.gisserver.ru/_extra/axGisTool/axGisTool/axmapobj_createobjectbyexcode.html]axMapObj.CreateObjectByExcode[/URL]


Если штатная возможность выделения объектов не устраивает и хочется выделить условным знаком из классификатора, то - [URL=http://help.gisserver.ru/_extra/axGisTool/axGisTool/axmapobj_paintobjectup.html]axMapObj.PaintObjectUp[/URL]
Нанесение объекта на карту с заполнением семантики, C# + GIS ToolKit Active 11
 
[QUOTE]Александр Махин написал:
Получается, что я вырезаю кусок, а остальное удаляется)))
Но мне нужно нанести площадной объект поверх карты.[/QUOTE]

Нет. Это что-то из области фантастики.
MapEditMetric умеет делать подобъекты, которые "вырезаются" из основной площади объекта, но это не тот случай.
Во-первых, невозможно что-то вырезать без того, из чего, собственно, вырезать.
Во-вторых, режим у MapEditMetric установлен для создания объекта.
В-третьих, контур подобъекта ("дырки") будет все равно такой же как и у основного контура.
Нанесение объекта на карту с заполнением семантики, C# + GIS ToolKit Active 11
 
Проверьте, с каким кодом фактически регистрируется объект (надо посмотреть непосредственно у сохраненного на карте объекта).

Если код тот, который нужен, то тут два варианта, почему Вы видите не то изображение объекта.
1. Этот объект в классификаторе является серией объектов - специальный набор условных знаков в классификаторе, конкретный значок зависит от значения определенной семантики объекта карты.
2. Для данного объекта заданы разные уловные знаки для векторного режима отображения карты и принтерного. У Вас карта, судя по всему, отображается в векторном виде.


Что касается подписи.
[QUOTE]Александр Махин написал:
А еще мне необходимо при завершении, чтобы внутри созданного площадного объекта была надпись (название), т.е. я на карте выделяю площадной объект допустим стадион и внутри добавляю его название.[/QUOTE]

Подпись у нас может быть как отдельный объект типа "Подпись". Этому объекту устанавливается своя метрика и задается значение Text. То есть наносить надо отдельно два объекта - полигон и подпись.

Второй вариант - сделать в классификаторе  условный знак полигона с подписью по семантике. В этом случае объект будет один, значение подписи будет браться из его семантики.
Но, в штатном исполнении такую подпись можно привязать только к начальной (или конечной) точке метрики контура объекта.

Для того, чтобы подпись автоматически отображалась в центре объекта, необходимо применять библиотеку пользовательских условных знаков (*.iml).
Это вариант для опытных пользователей.

Начните пока с простого варианта - объект-площадь + объект-подпись.
Нанесение объекта на карту с заполнением семантики, C# + GIS ToolKit Active 11
 
[QUOTE]Александр Махин написал:
MapEditMetric.StartAction();
MapObj.Text_set(0, f.ObjText);
MapObj.Metric.Append(0, MapPoint.C_CONTAINER);
MapObj.Commit();
MapView.Refresh();
[/QUOTE]

После того, как Вы вызвали StartAction(), заполнением метрики объекта (или ее редактированием) занимается компонент MapEditMetric.
Поэтому эти строчки лишние:
[QUOTE]Александр Махин написал:
MapObj.Metric.Append(0, MapPoint.C_CONTAINER);
MapObj.Commit();
MapView.Refresh();
[/QUOTE]

Этот метод выполняет установку текста подписи. Он имеет смысл только для объектов типа "Подпись".
[QUOTE]Александр Махин написал:
MapObj.Text_set(0, f.ObjText);
[/QUOTE]
Тоже лишний.


[QUOTE]Александр Махин написал:
Как мне передать нанесенному объекту семантику???[/QUOTE]
Это можно сделать либо до редактирования метрики, либо после.
Главное - до MapObj.Commit().

Как объекту добавить семантику мы с Вами [URL=http://www.gisweb.ru/forum/forum2/10104-id-obekta-iz-bd-v-semantike]проходили в соседней теме[/URL].

MapObj.Commit() следует вызывать после того, как режим редактирования метрики отработал. Об этом можно узнать с помощью события [URL=http://help.gisserver.ru/_extra/axGisTool/axGisTool/axmapeditmetric_onstopaction.html]axMapEditMetric.OnStopAction[/URL].

Посмотрите, как это реализовано в примере ...\GIS ToolKit Active\Example\Visual Studio 2012 С#\Mapedit\
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 70 След.



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