1.9.3 Vykreslení bodů z tabulky databáze MS Access

Často se stává, že souřadnice (zejména bodových objektů) nejsou v ESRI Shapefile, ale jsou uloženy v tabulce relační databáze. Takováto data je možné s využitím PHP modulu vizualizovat v mapě.

Úvod

Na doprovodném CD naleznete databázi MS Access pojmenovanou Data.mdb. K tomu abychom mohli data z databáze MS Access vizualizovat s využitím PHP modulu, musíme provést registraci ODBC (Open database Connectivity) zdroje pro přístup k datům.

Následující obrázky ukazují postup registrace datového zdroje v operačním systému Windows 2000 (XP). V jiných operačních systémech typu Windows je registrace podobná (vychází se z Settings/Nastavení).

Registrace ODBC zdroje

Obrázek 1-36: Control Panel.

V nástroji Control Panel vybereme Administrative Tools (ve Windows 95, 98 a NT je nastavení ODBC přímo v Control Panel)

Control Panel

Obrázek 1-37: Administrative Tools.

V nástroji Administrative Tools vybereme nástroj Data Sources (ODBC).

Administrative Tools

Obrázek 1-38: ODBC Data Sources Administrator

V nástroji ODBC Data Sources Administrator zvolíme kartu System DSN a klikneme na tlačítko Add.

ODBC Data Sources Administrator

Obrázek 1-39: Create New Data Source

V průvodci Create New Data Source zvolíme ovladač Driver do Microsoft Access (*.mdb) a klineme na tlačítko Finish.

Create New Data Source

Obrázek 1-40: ODBC Microsoft Access Setup

V okně ODBC Microsoft Access Setup vyplníme pole data Source Name (uvedeme Prvni). Pole Description je nepovinné. Dále klikneme na tlačítko Select pro výběr souboru Data.mdb.

ODBC Microsoft Access Setup

Obrázek 1-41: Výběr databáze

V okně Select Database pomocí průchodu adresáři vybereme soubor Data.mdb. Odklikáním tlačítek OK ukončíme celý proces registrace datového zdroje.

Výběr databáze

Pro vykreslení bodů potřebujeme mít v mapové kompozici bodovou vrstvu. Daná bodová vrstva nemusí ukazovat na žádný zdroj (parametr DATA může být vypuštěn). Do souboru prvni.map doplňte následující kód:

LAYER
NAME 'mesta'
TYPE point
STATUS on
CLASS
NAME 'Mesta'
COLOR 0 0 255
SYMBOL 1
SIZE 5
END # CLASS
END # LAYER

Úprava souboru MAP

 

PRŮVODCE STUDIEM 16

 

V případě problémů s kopírováním (přepisováním) kódu souboru jej naleznete na CD v adresáři ms/ pod názvem prvni_v11.map.

Zdroj na CD

 

Do souboru prvni.php přidáme několik řádků kódu, které zajistí vykreslení bodů z databáze. Přidané řádky jsou zvýrazněny tučně:

...
$img = $mapa->draw();

 
//název vrstvy pro umístění bodů
$lyrname = "mesta";
//získání objektu typu Layer
$lyr = $mapa->getLayerByName($lyrname);
//spojení s databází
$con=odbc_connect("Prvni", "", "");
//nový objekt - prázdný bod
$oPoint = ms_newPointObj();
//SQL dotaz
$SQL = "SELECT * FROM Body";
//získání recordsetu (sady záznamů)
$res=odbc_exec($con, $SQL);

 
//cyklus po jednotlivých záznamech recordsetu
do {
//získání hodnoty z položky x
$cx=odbc_result($res, "x");
//získání hodnoty z položky y
$cy=odbc_result($res, "y");
//nastavení souřadnic pro bod
$oPoint->setXY($cx, $cy);
//vykreslení bodu
$oPoint->draw($mapa, $lyr, $img, 0, "");
//další záznam – v případě konce recordsetu vrací -1
} while (odbc_fetch_row($res));

 
//uvolnění bodu z paměti
$oPoint->free();
//uzavření spojení s databází
odbc_close($con);

 
$url = $img->saveWebImage(MS_PNG, 1, 1, 0);
...

Část kódu prvni.php – vykreslení bodů z databáze

Vlastní vykreslení zajišťuje metoda draw objektu oPoint. Tato metoda vyžaduje objekt mapa, objekt lyr (vrstva), objekt img. Další parametry jsou nepodstatné.

$oPoint->draw($mapa, $lyr, $img, 0, "");

Souřadnice bodů jsou čteny z tabulky Body databáze Data.mdb, kterou jsme zaregistrovali přes ODBC jako zdroj pod názvem Prvni.

 

V prohlížeči zadejte adresu http://127.0.0.1/ms/prvni.php. Výstup je zobrazen na dalším obrázku.

Testování

Obrázek 1-42: Výstup z prvni.php – vykreslení bodů z databáze.

Pokud jste neobdrželi uvedený výstup, podívejte se do průvodce studiem. Pokud ani tam nenajdete řešení vašeho problému postupujte podle pokynů uvedených v úvodu modulu.

Výstup z prvni.php – vykreslení bodů z databáze

 

PRŮVODCE STUDIEM 17

 

V případě problémů s kopírováním (přepisováním) kódu souboru jej naleznete na CD v adresáři ms/ pod názvem prvni_v4.php.

Zdroj na CD