Metody pro práci se seznamem map
Tyto metody slouží pro správu hierarchického seznamu map. Seznam map je stromová struktura skládající se ze čtyř základních položek:
Seznam slouží k logickému sdružování map do témat a určuje pořadí vykreslování a vyhledávání u analytických funkcí.
Každé téma může obsahovat libovolné množství podtémat, vektorových map, rastrových map a kladů listů. S tématem je možné pracovat jako se samostatnou mapou. Jednotlivé mapy je možné přesunovat v rámci tématu i mimo téma.
Každá mapa má svůj vnější (Id) a vnitřní (Item) identifikátor. Vnější určuje uživatel (programátor) aplikace. Vnitřní se může měnit. Vnější identifikátor se nastavuje při přidávání map do seznamu metodou AddMap. Jediné funkce, které jej mají jako parametr, je funkce DeleteMap slouící k odstranění mapy ze seznamu a funkce začínající předponami Vect a Ras. Ostatní funkce používají kvůli rychlosti jako parametry vnitřní identifikátor. Pomocí funkce MTGetItemHandle získáme z vnějšího identifikátoru vnitřní a pomocí funkce MTGetItemId z vnitřního vnější.
Pro průchod stromovou strukturou jsou dále přístupné metody MTGetRootItem, MTGetLastItem, MTGetChildItem, MTGetParentItem, MTGetNextItem, MTGetPrevItem, MTGetNextSiblingItem a MTGetPrevSiblingItem. Všechny pracují s vnitřním identifikátorem.
Dále jsou dostupné funkce pro zjišťování a nastavování různých atributů. Jsou to MTGetItemType pro zjištění typu položky, MTGetItemName a MTSetItemName pro zjištění a nastavení jména, MTGetItemIsDraw a MTSetItemIsDraw pro zjištění a nastavení atributu vykreslování, MTGetItemFilename pro zjištění názvu souboru spjatého s položlou, MTGetCount pro zjištění počtu položek , GetMapMBR pro zjištění nejmenšího opsaného obdélníka mapy a MTMoveItem pro přesun jednotlivých položek ve stromu map.
Dále existují speciální metody SetMapTree a SetLegTree pro navázání spojení mezi komponentami MapTree a LegendaTree a komponentou BasMap. BasMap si pamatuje si atributy zda je prvek aktivní (MTSelectItem, MTGetSelectedItem) a zda je podstrom rozbalený (MTExpandItem, MTGetItemIsExpanded).
Seznam metod
long AddMap(long Type, long Id, LPCTSTR FileName, LPCTSTR Name, long ParentId, long InsertAfterId)
Popis
AddMap přidá mapu do stromové struktury seznamu map. Mapu přidá jako potomka ParentId a za InsertAfterId.
Parametry
Type Obsahuje jednu z konstant popisujících typ mapy
Id Určuje jednoznačný identifikátor mapy
FileName Úplná cesta, včetně názvu souboru, kde je uložen soubor s mapou
Name Jméno kterým bude mapa pojmenována v MapTree
ParentId Id rodičovského tématu, kam bude mapa vložena.
InsertAfterId Id sourozence, za kterého bude mapa vložena.
Návratová hodnota
Proběhne-li vše v pořádku, vrací funkce celé kladné číslo. Toto číslo reprezentuje item, přes který je nutné se odkazovat při práci se seznamem map. Nastane-li chyba, je návratová hodnota záporná nebo 0, v závislosti na typu přidávané mapy (parametr Type). Pro jednotlivé hodnoty parametru Type existují příslušné chybové návratové hodnoty pro témata, vektorové mapy, rastrové mapy a klady listů. Není-li parametr Type ani jedné z těchto hodnot, vrací funkce 0.
Poznámka
Je nutné dávat pozor na rozdíl mezi Id mapy a item mapy. Id je jednoznačný identifikátor, který určuje programátor. Item je identifikátor, pod kterým je uložen ve stromové struktuře a je určován pořadím vložení mapy. Id slouží pro vytvoření jednoznačné relace na databázi. Item slouží pro odkazování na mapu ve stromové struktuře u metod pro práci se seznamem map.
Programátor musí zajistit, aby Id byl opravdu jednoznačný. Jinak nelze zaručit správnou funkci komponenty. Pro zjištění nejvyššího Id použitého v seznamu map lze použít metodu MTGetMaxId. Toto Id zvětšené o 1 není zaručeně použité.
Možné hodnoty parametrů ParentId a InsertAfterId naleznete v popisu metody MTMoveItem.
Odkazy
DeleteMap, chybové stavy témat, vektorové mapy, rastrové mapy, kladu listů a konstanty popisující typ mapy.