1.9.1 Vykreslení mapové kompozice připravené v předchozím cvičení
K testování správné instalace využijeme existující mapovou kompozici prvni.map. Prozatím do ní nebudeme zasahovat a pouze se pokusíme o její vykreslení, ale tentokrát již s využitím PHP modulu. |
Úvod |
Vytvoříme soubor prvni.php, který naplníme následujícím kódem, který se postará o vykreslení kompozice prvni.map. <HTML> Řádek //dl("C:\temp\php_mapscript.dll"); //přimapování DLL knihovny není interpretován a byl by použit pouze v případě, že bychom nemohli knihovnu umísit do adresáře C:\PHP\extensions. Řádek $mapa = ms_newMapObj($mapfile) využívá konstruktoru ms_newMapObj (string mapfile) k získání objektu mapa. Všechny konstruktory tříd v PHP modulu začínají znaky ms_ Objekt mapa nabízí mnoho metod (s některými se seznámíme dále). V tomto případě se na dalším řádku využívá metoda draw. Tato metoda provede vykreslení obsahu mapového pole v paměti počítače (resp. vytvoří objekt img). Objekt img se v posledním kroku zapíše na disk do adresáře definovaného v souboru prvni.map pomocí metody saveWebImage. Tato metoda má čtyři parametry. První je typ souboru (MS_JPEG, MS_GIF, MS_PNG, MS_WBMP), druhý udává průhlednost (0/1), třetí prokládání (0/1) a čtvrtý kvalitu (0 – 95). |
První skript |
Soubor prvni.php umístíme do stejného adresáře jako soubor prvni.map. Spustíme přes WWW prohlížeč adresou http://127.0.0.1/ms/prvni.php. Výstup ze skriptu by měl vypadat obdobně jako na následujícím obrázku. |
Testování |
Obrázek 1-33: Výstup z prvni.php. 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 |
PRŮVODCE STUDIEM 14 |
|
|
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_v1.php. |
Zdroj na CD |
|
Přestože máte kód v pořádku může dojít k několika chybovým hlášením. Dále jsou uvedeny dvě nejpravděpodobnější: |
Chyby |
|
Fatal error: Call to undefined function: ms_newmapobj() in c:\program files\apache group\apache\htdocs\ms\prvni.php on line 7 Tato chyba ukazuje na špatnou instalaci DLL knihovny. V některých případech prosté zkopírování knihovny nestačí a je nutné provést několik dalších operací: · Zkopírovat C:\PHP\php.ini-dist do C:\Winnt\php.ini (C:\Windows\php.ini)· Editovat soubor C:\Winnt\php.ini- Do sekce Dynamic Extensions doplnit řádek extension=php_mapscript_36.dll - V sekci Paths and Directories změnit řádek extension_dir = ./ na Správně nakonfigurovaný soubor php.ini najdete na CD v adresáři php pod názvem php.ini |
Chyba - Call to undefined function |
|
Na dalším obrázku jsou znázorněny další dvě možné chyby (varování), které jsou následovány stejnou chybou jako v předchozím případě. Obrázek 1-34: Varování – Unable to load dynamic library. V obou případech je problém se samotnou knihovnou (ne s instalací). Buď je soubor poškozen nebo používáte jinou verzi PHP než distribuovanou na doprovodném CD ke kurzu. Zkuste soubor php_mapscript_36.dll zkopírovat ještě jednou, případně ověřit verzi PHP. |
Varování – Unable to load dynamic library |