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

Список объектов карты

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Список объектов карты, Как получить список объектов карты
 
Здравствуйте!

Список слоев карты получаем так:

For i := 1 to mvMap.MapLayers.LayerCount do
begin
CheckListBox1.Items.Add(mvMap.MapLayers.MapLayers[i].LayerName);
end;

Как аналогично получить список объектов карты?
 
Сергей Викторович, здравствуйте.
Через компонент MapFind, указав в MapSelect выборку всех слоев и локализаций, т.е. всех объектов карты.
 
Цитата
Роман Твердов написал:
Сергей Викторович, здравствуйте.
Через компонент MapFind, указав в MapSelect выборку всех слоев и локализаций, т.е. всех объектов карты.
Отключаем слой ДОРОЖНОЕ ХОЗЯЙСТВО
mvMap.Selecting := false;
mvMap.ViewSelect.Layers[3] := false;
mvMap.Selecting := true;
В слой ДОРОЖНОЕ ХОЗЯЙСТВО
входит объект Проезжие части
Проверяем
If mvMap.ViewSelect.Excode[10000045,OL_SQUARE] = true then
ShowMessage ('Проезжие части видны')
else
ShowMessage ('Проезжие части не видны');
Результат:
Проезжие части видны
не пойму почему?
Похоже они никак не связаны.
Вопрос:
можно ли как-то связать слои и объекты?
Изменено: Сергей Викторович - 12.08.2019 14:27:18
 
Сергей Викторович, объекты и слои "связаны" в классификаторе карты.
Насчет того, что объекты видны, Вы можете прислать пример Вашего приложения?
 
Добрый день, Роман.

Вытаскиваю наименования объектов из классификатора так.
Var
i : integer;
ExCodeInt : integer;
ObjName   : string;
LocInt    : integer;
RscObject: Maptype.TRSCOBJECT;

For i := 16 to form_main.MapRsc1.ObjectCount do
begin
mapGetRscObject(MapRsc1.RscHandle,i,RscObject);
LocInt := RscObject.Local;
ExCodeInt := RscObject.Code;
ObjName := RscObject.Name;
mapGetViewSelect(form_main.mvMap.MapHandle,form_main.mvMap.ViewSelectHandle);
mapGetSiteUsedSelect(form_main.mvMap.MapHandle,form_main.mvMap.MapHandle,form_main.mvMap.ViewSelectHandle);
mapCreateMapSelectContext(form_main.mvMap.MapHandle);
ShowMessage (ObjName);
end;

Слои отключаются так:
form_main.mvMap.Selecting := false;
form_main.mvMap.ViewSelect.Layers[3] := Chk;

Объекты отключаются так:
Map.ViewSelect.Excode[1000024] := false;

form_main.mvMap.Selecting := true;

В чем ошибка?
 
Цитата
Сергей Викторович написал:
mvMap.Selecting := false;
mvMap.ViewSelect.Layers[3] := false;
mvMap.Selecting := true;
Этот код должен выключить из отображения 4-й по порядку слой в той карте, на которую настроен ViewSelect (см. свойство TMapSelect.SiteNumber).

Можете объяснить, что Вы таким образом пытались добиться?
Цитата
Сергей Викторович написал:
mapGetViewSelect(form_main.mvMap.MapHandle,form_main.mvMap.ViewSelectHandle);
mapGetSiteUsedSelect(form_main.mvMap.MapHandle,form_main.mvMap.MapHandle,form_main.mvMap.ViewSelectHandle);
mapCreateMapSelectContext(form_main.mvMap.MapHandle);
 
Сергей Викторович, отключение/включение слоев Вам не даст того, что Вы хотите решить.
Например,
Код
If mvMap.ViewSelect.Excode[10000045,OL_SQUARE] = true then
Это проверка включен ли в Select объект или нет.

Как мы с Вами уже по телефону разговаривали, необходимо проверить поиском есть ли объект на карте или нет. Из классификатора Вы можете получить перечень его объектов и каким слою принадлежит объект.
 
Понятно, что я что-то не понимаю.
Цитата
Роман Твердов написал:
Насчет того, что объекты видны, Вы можете прислать пример Вашего приложения?
Похоже это лучшей вариант решения вопроса.
Я подготовлю контрольный пример и пришлю.
Спасибо.  
Страницы: 1
Читают тему (гостей: 1)



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

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