HaxeMaps / Canvas

Třída Canvas implementuje a) vykreslovací plátno (okno mapové aplikace) a b) správce jednotlivých mapových vrstev.

1. Metody

map.Canvas (extends com.Component)

  • Canvas(interactive:Bool = true)

    Konstruktor, který vytvoří instanci třídy Canvas, která má na starosti zobrazování a správu mapových vrstev. Hodnota parametru interactive určuje, zda-li bude vytvořena statická mapa nebo mapa interaktivní.

  • initialize()

    Inicializuje vykreslovácí plátno a jednotlivé vrstvy - nastaví počátek, úroveň přiblížení, zahájí načítání dat a povolí vykreslování.

    V případě, že ani jedna z vrstev nemá definován zdroj dat (MapService), skončí inicializace neúspěchem.

  • addLayer(layer:Layer, enable:Bool = true)

    Přidá novou vrstvu, která se bude zobrazovat nad stávajícími. Je-li nastaven parametr enable, vrstva bude automaticky aktivována, tzn. proběhla-li již inicializace vykreslovacího plátna, je nově přidaná vrstva ihned inicializována.

    Pokus o přidání již zaregistrované vrstvy skončí neúspěchem.

    canvas = new Canvas();
    canvas.move(0,0);
    canvas.setSize(300,300);
     
    canvas.addLayer(new TileLayer(new OpenStreetMapService(), 8));
    canvas.addLayer(new VectorLayer());
     
    canvas.initialize();
  • removeLayer(layer:Layer)

    Odstraní vrstvu ze seznamu používaných vrstev a provede uvolnění zabraných zdrojů.

  • enableLayer(layer:Layer)

    Aktivuje vrsvu layer

  • disableLayer(layer:Layer)

    Deaktivuje vrstvu layer, tzn. zneviditelní vrstvu a přestane se aktualizovat při změně obsahu plátna její obsah.

  • layerEnabled(layer:Layer):Bool

    Vrací true, je-li vrstva aktivní, tzn. je-li povoleno vykreslování.

    Není-li vrstva zaregistrována pomocí metody addLayer, vrací hodnotu false.

  • updateLayer(layer:Layer)

    V případě, že je vrstva registrována pomocí metody addLayer a povolena, provede vynucené překreslení vrstvy.

  • zoomIn()

    Plynule o jeden krok zvýší rozlišení mapy (přiblíží mapu). Pokud libovolný z mapových zdrojů neposkytuje detailnější data případně již probíhá změna rozlišení, pokus o přiblížení je ignorován.

  • zoomOut()

    Plynule o jeden krok sníží rozlišení mapy (odddálí mapu). Pokud libovolný z mapových zdrojů neposkytuje hrubší data případně již probíhá změna rozlišení, pokus o oddálení je ignorován.

  • setZoom(zoom:Int)

    Nastavení konkrétní hodnoty relativního přiblížení (tzn. bez animace). Úroveň přiblížení se pohybuje v intervalu [-i,j], přičemž hodnota 0 odpovídá výchozímu rozlišení (dáno výchozí hodnotou mapové služby), hodnota menší než-li nula hrubšímu měřítku, hodnota kladná jemnějšímu měřítku. Mezní hodnoty jsou dány použitými mapovými podklady.

    Pokus o nastavení přiblížení, které nedovolují použité mapové zdroje skončí neúspěchem.

  • getZoom():Int

    Vrací relativní úroveň přiblížení (viz popis metody setZoom)

  • getMinZoom():Int

    Vrací nejmenší možnou platnou hodnotu relativní úrovně přiblížení.

  • getMaxZoom():Int

    Vrací největší možnou platnou hodnotu relativní úrovně přiblížení.

  • getCenter():LngLat

    Vrací souřadnice bodu nacházejícího se ve středu aktuálního výřezu (uprostřed okna). Není-li aktivní ani jedna vrstva, je vrácena poslední známá poloha případně výchozí hodnota.

  • setCenter(point:LngLat)

    Nastaví jednotlivé vrstvy tak, aby uprostřed výřezu byl bod s požadovanými souřadnicemi.

  • panTo(point:LngLat)

    Postupně přesune mapu z aktuální pozice na pozici určenou parametrem point.

  • getLngLat(global:Point):LngLat

    Vrátí geogr. souřadnice bodu na pozici global (globální pozice v pixelech vztažená k flash stage). Tuto metodu lze použít např. pro určení souřadnic bodu nacházejícího se pod kurzorem myši.

    V případě, že není aktivní ani jedna vrstva, je vrácena hodnota null.

  • getLeftTopCorner():LngLat

    Vrací souřadnice levého horního bodu aktuálního výřezu. V případě, že není aktivní ani jedna vrstva, je vrácena hodnota null.

  • getRightBottomCorner():LngLat

    Vrací souřadnice levého horního bodu aktuálního výřezu. V případě, že není aktivní ani jedna vrstva, je vrácena hodnota null.

2. Události

Instance třídy generuje tyto události

  • MapEvent.MAP_CLICKED - událost vyvolána při kliknutí do canvasu, proměnná point typu LngLat instance MapEvent obsahuje souřadnice bodu pod kurzorem myši v době kliknutí. Tato událost se od standardní události MouseEvent.MOUSE_CLICK liší v tom, že a) nedojde k její aktivaci při dvojkliku b) nedojde k její aktivaci došlo-li k posunu mapy.

  • MapEvent.MAP_MOUSEMOVE - událost se vyvolá při pohybu myši nad mapou, proměnná point instance MapEvent obsahuje souřadnice bodu pod kurzorem myši

  • MapEvent.MAP_MOVE - událost se vyvolá při jakémkoliv pohybu s mapou, proměnná point instance MapEvent obsahuje aktuální souřadnice středu odpovídající bodu uprostřed mapy

  • MapEvent.MAP_ZOOMCHANGED - událost se vyvolá při změně přiblížení, proměnná point obsahuje null

  • MapEvent.MAP_CHANGED - událost se vyvolá při každé změně mapy (při změně přiblížení, po inicializaci, přidání vrstvy a při pohybu s mapou), proměnná point obsahuje null

Příklad použití

import map.Canvas;
 
function init()
{
   canvas = new Canvas();
   canvas.addEventListener(MapEvent.MAP_CLICKED, clicked);
}
 
function clicked(e:MapEvent)
{
   trace("Canvas click at:" + e.point);
}

3. Závislosti

com.Component - rozhraní pro snadnou manipulaci s objektem

  • move(x:Float, y:Float) - posunutí komponenty na souřadnice x,y

  • setSize(width:Float, height:Float) - nastavení rozměru komponenty

Zobrazeno: 1314x Naposledy: 3.4.2024 17:30:46