Tree: String;
Tree: string;
Свойство Tree возвращает дерево-структуру топоосновы.
Используя дерево-структуру с помощью метода ITopobase.GetSpecificTopobase можно создавать пользовательские топоосновы на базе существующих топооснов.
Для выполнения примера предполагается наличие формы, содержащей компонент MapBox с идентификатором MapBox1 и компонента UiMap с идентификатором UiMap1. В компонент UiMap1 должна быть загружена карта и он должен являться источником данных для компонента MapBox1.
Добавьте ссылку на системную сборку Topobase.
Sub UserProc;
Var
Map: IMap;
Topo, SpecTopo: ITopobase;
Tree: String;
Begin
// Получаем карту
Map := UiMap1.Map;
// Получаем топооснову
Topo := Map.Topobase As ITopobase;
// Получаем дерево-структуру топоосновы
Tree := Topo.Tree;
// Выводим её в окно консоли
Debug.WriteLine(Tree);
// Задаем новое дерево-структуру для топоосновы
Tree := "<Topobase><Layer Name=" + """" + "RootLayer" + """" + " Id=" + """" + "1" + """" +
"><Layer Name=" + """" + "Regions" + """" + " Id=" + """" + "2" + """" +
"><Shape Name=" + """" + "Республика Адыгея" + """" + " Id=" + """" + "135" + """" + "/></Layer></Layer></Topobase>";
// Получаем топооснову на базе нового дерева-структуры
SpecTopo := Topo.GetSpecificTopobase(Tree, True);
// Отображаем новую топооснову в компоненте UiMap1
Map.Topobase := SpecTopo As IMapTopobase;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Map;
Imports Prognoz.Platform.Interop.Topobase;
…
Public Sub UserProc();
Var
Map: IMap;
Topo, SpecTopo: ITopobase;
Tree: String;
Begin
// Получаем карту
Map := uiMapNet1.MapUi.Map;
// Получаем топооснову
Topo := Map.Topobase As ITopobase;
// Получаем дерево-структуру топоосновы
Tree := Topo.Tree;
// Выводим её в окно консоли
System.Diagnostics.Debug.WriteLine(Tree);
// Задаем новое дерево-структуру для топоосновы
Tree := "<Topobase><Layer Name=" + """" + "RootLayer" + """" + " Id=" + """" + "1" + """" +
"><Layer Name=" + """" + "Regions" + """" + " Id=" + """" + "2" + """" +
"><Shape Name=" + """" + "Республика Адыгея" + """" + " Id=" + """" + "135" + """" + "/></Layer></Layer></Topobase>";
// Получаем топооснову на базе нового дерева-структуры
SpecTopo := Topo.GetSpecificTopobase(Tree, True);
// Отображаем новую топооснову в компоненте UiMap1
Map.Topobase := SpecTopo As DxMapTopobase;
End Sub UserProc;
В результате выполнения примера в компоненте UiMap1 будет отображен масштабированный фрагмент исходной карты.
См. также: