Google Maps - a térinformatika szolgálatában


Szerzők

Informatikus és szakigazgatási agrármérnök szak, informatika szakirány
Szent István Egyetem, Gazdaság- és Társadalomtudományi Kar, Gödöllő - 2010


Tartalomjegyzék

  1. Honnan is kezdtük?
  2. Mi volt a cél?
  3. Miért a Google Maps?
  4. Hogyan működik?
  5. A vezérlő - geoXML
  6. Mi az a geoXML?
  7. Hogyan működik?
  8. KML vagy KMZ, esetleg XML?
  9. Kezdjünk el vizualizálni
  10. Vizalizálási típusok
  11. Marker
  12. Polyline
  13. Polymarker
  14. Hogyan készítsünk KMZ file-t
  15. Hogyan kell egy kész KML file-t módosítani
  16. Minden a helyére kerül
  17. Letölthető file-ok


Honnan is kezdtük?

Mi volt a cél?

A térinformatika tantárgy keretén belül az volt a feladata a csapatnak, hogy valamilyen módon adatokat lehessen vizualizálni a térképen. Ez számos problémát felvetett:

Miért a Google Maps?

Hosszas tárgyalás után született meg az ötlet, hogy a Google Maps-et kellene használni a feladat megoldására, mert így számos problémát vehettünk le a vállunkról. Először is, van egy kész térképadatbázis, ami ingyenes, naprakész és jól használható. Másodszor, képes XML struktúrában előállított adathalmazt a megfelelő transzformációk után megjeleníteni.

Egyetlen követelemény a Google szempontjából, hogy az alkalmazás rendelkezzen egy Google API kulccsal. Erre azért van szükség, hogy használni tudjuk a Google szolgáltatását a megadott weboldalon. Tessék észben tartani, hogy a kulcs csak azon a domain neven használható, amihez legeneráltattuk.

Hogyan működik?

A térképszolgáltatást viszonylag egyszerűen lehet használni. Miután megvan az API kulcs, a következőket kell tennünk:

  1. Google Maps API kulcsot itt tudunk generálni. (Az oldalon pontosan töltsétek ki a "My website URL:" mezőt, mert ha rossz, akkor a feltöltött script nem fog működni!)
  2. Le kell tölteni egy apró JavaScript fájlt, amit itt találhattok meg.
    Ez egy apró fájl, amit GL és BT írt a hivatalos Google Maps API dokumentációja alapján. Paraméterezhető, YUI tömörítővel tömörített fájl.
  3. Be kell szúrni a Google Maps-et betöltő script-et a HTML fájlunk <head></head> részébe:

    Google Maps API betöltése

    <script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=API_KULCS_IDE_JÖN"></script>
    Értelem szerűen az "API_KULCS_IDE_JÖN" feliratot cseréljük le a saját kulcsunkra.
  4. A letöltött GMController.js fájlt tegyük a térképalkalmazásunk könyvtárába. Tehát a könyvtárstruktúra most az alábbiak szerint néz ki:

    Könyvtár-struktúra

    [DOCUMENT ROOT]
      |-konyvtar 1
      |-konyvtar 2
      |-konyvtar n
      |-GMController.js
      |-index.html
  5. Helyezzünk el rá egy hivatkozást a <head></head> részlegben.

    GMController.js betöltése

    <script type="text/javascript" src="GMController.js"></script>
  6. A következő lépés, hogy létrehozzunk egy <div></div> elemet a meghatározott azonosítóval id már a <body></body> elemek között. Ezzel tudatjuk a Google Maps-szel, hogy ebbe az elembe szeretnénk megjeleníteni a térképet. A betöltő függvényeket pedig a <body> tag-hez kapcsoljuk.

    A térkép betöltése

    <body onload="initialize(p1, p2, p3, p4);" onunload="GUnload();">
        <div id="map_canvas"></div>
    </body>
  7. Mint látható a fenti kód példában, az initialize függvényen belül p1-4 értékek szerepelnek. Ezeket állítsuk be a kívánt értékre. A paraméterek magyarázatát az alábbi táblázat foglalja össze.
Paraméter Típus Kötelező Leírás
p1 szöveg nem URL. Itt lehet megadni annak a geoXML fájlnak az elérését (a későbbiekben még szó lesz róla), ami tartalmazza az adatok vizualizációjához szükséges adatokat a Google Maps számára. Fontos, hogy olyan helyen legyen a fájl, ahol a Google is eléri. Mivel szöveges típus, ezért kéretik szimpla idézőjelek közé tenni értékét.

Pl.: http://360fanatix.hu/terinfo/countrires2.kmz
p2 tizedes tört nem Az induláskori térkép középpont első koordinátája. Figyelem, a magyarral ellentétben a tizedeselválasztó jel nem a vessző (,), hanem a pont (.). Mivel nem kötelező, ha nem adjuk meg, akkor automatikusan Európa középpontjának első koordinátája lesz az alapértelmezett.
p3 tizedes tört nem Az induláskori térkép középpont második koordinátája. Figyelem, a magyarral ellentétben a tizedeselválasztó jel nem a vessző (,), hanem a pont (.). Mivel nem kötelező, ha nem adjuk meg, akkor automatikusan Európa középpontjának második koordinátája lesz az alapértelmezett.
p4 egész szám nem Az induláskori térkép alapértelmezett nagyítása. A skála 1 és 15 között mozog. Mivel nem kötelező, ezért az alapértelmezett értéke 6.

Valahogy így

<body onload="initialize();" onunload="GUnload();">
    <div id="map_canvas"></div>
</body>
És íme, a végeredmény:

1. ábra - Egy kis Google Maps

A vezérlő - geoXML

Mi az a geoXML?

Az alap struktúra, amiért a Google Maps-et választottuk az az volt, hogy a Google képes XML struktúrában létrehozott adatokat közvetlenül olvasni és beilleszteni. A geoXML tulajdonképpen egy speciális XML file, ami a térképen történő ábrázoláshoz szükséges adatokat tartalmazza. A Google a sajátját nem XML -nek, hanem KML -nek nevezte el, de most ez a lényegen nem változtat.

Részlet egy geoXML fájlból

<?xml version="1.0" encoding="UTF-8"?>

<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
    <name>Countries</name>
    <open>1</open>
    <Schema parent="Placemark" name="S_country">
        <SimpleField type="wstring" name="FIPS_CNTRY"></SimpleField>
    </Schema>
</Document>

Hogyan működik?

A dolog lényege, hogy van egy KMZ file-unk, ami tartalmazza a megjelenítéshez szükséges információkat, koordinátákat. Ezeket az adatokat a Google képes értelmezni, és azokat a térképen elhelyezni.

A "Hogyan készítsünk KMZ file"-t menüpontban egy videón keresztül mutatjuk be, hogyan lehet könnyen és gyorsan KMZ file-t készíteni.

KML vagy KMZ, esetleg XML?

Igazából ha a fájl tartalma 100%-an korrekt és értelmezhető a Google által, akkor nincs jelentősége, hogy a fájl végén xml vagy kml szerepel. A KMZ-nek is csak akkor van jelentősége, ha viszonlyag nagy a KML fájl (értsd több megabájtos) akkor célszerű KMZ-be tenni. Magát a KMZ fájlt roppant egyszerű előállítani.

A kész kml fájlt tömörítsük be egy egyszerű ZIP-be. Majd ha kész van, akkor csak szimplán nevezzük át KMZ-be. Ennyi a lényeg. :)


Kezdjünk el vizualizálni

Vizualizálási típusok

A Google Maps alapból három féle ábrázolási technikával rendelkezik, melyek a következőek:

  1. Marker
  2. Polyline
  3. Polygon

Marker

A Marker (vagy magyarul jelölő) egyetlen pont megjelenítésére képes. Amolyan rajzszög féleség.

2. ábra - Marker

Polyline

A Polyline (vagy magyarul vonal) segítségével vonalat, vagy körvonalat helyezhetünk el a térképen. Működése rendkívül egyszerű: definiáljuk a koordinátákat, majd a google automatikusan összeköti őket.

3. ábra - Polyline

Polygon

A Polygon eszköz arra képes, hogy a megadott koordináták közötti területet színezze be.

4. ábra - Polygon

Hogyan készítsünk KMZ file-t

Az alábbi videóban lépésről-lépésre bemutatásra kerül egy alap KMZ file létrehozása. A felhasznált eszköz szintén a Google sajátja, nevén Google Earth.

Hogyan kell egy kész KML file-t módosítani

A második videót Chaplin emlékére némafilmként készítettük el. :)


Minden a helyére kerül


Letölthető file-ok


Labát Anett, Batár Ádám, Gerendás László, Monostory Enikő, Bures Tamás (Informatikus és szakigazgatási agrármérnök, informatika szakirány) © 2010 - Szent István Egyetem, Gödöllő, Magyarország