../../_images/logo_mapcache.png ../../_images/OSGeo_project.png

MapCache gyorstalpaló

A MapCache egy csempe szerver, mely meggyorsítja a hozzáférést a WMS réteghez. CGI alkalmazásként futtatható több különböző web szerver alatt vagy mint egy Apache modul. Az OSGeoLive-on a MapCache-t mint Apache modult telepítettük és konfiguráltuk.

Ez a gyorstalpaló bemutatja hogyan adjunk egy új WMS réteget a MapCache beállításhoz, hogyan jelenítsük a csempe szolgáltatást egy OpenLayers web térképen, és hogyan töltsük fel a gyorstárat a parancssorból.

Új csempekészlet hozzáadása és megjelenítése OpenLayers-ben

A MapCache-t XML fájlok felhasználasával konfigurálták. Az OSGeoLive egy minta konfigurációs fájlt tartalmaz /usr/local/share/mapcache/mapcache-quickstart.xml. A példa az OSGeoLive Itasca megyei demó MapServer alkalmazást használja forrásként.

Ebben a gyorstalpalóban egy további WMS rétegre állítjuk be a csempe gyorstárazást és megjelenítjük a csempéket egy OpenLayers térképet tartalmazó egyszerű HTML oldalon.

Először nyissa meg a MapCache konfigurációs fájlt a FeatherPad szövegszerkesztőben. A parancssorból megnyitott FeatherPad ellenőrzi a jogosultságokat, elmentheti a fájlt System Tools > QTerminallal majd futtassa az alábbi parancsot:

sudo featherpad

A következő link: http://localhost/itasca/?service=wms&request=getcapabilities megnyitásával Láthatjuk mely rétegek érhetők el a forrás WMS szerverünkben, a MapCachet úgy konfigurálták, hogy az általa nem kezelt kéréseket, például GetCapabilities, a MapServer-hez továbbítsa az alább bemutatott szabállyal:

<forwarding_rule name="catch all">
  <http>
    <url>http://localhost/cgi-bin/mapserv?map=/usr/local/www/docs_maps/mapserver_demos/itasca/itasca.map</url>
  </http>
</forwarding_rule>

Az egyik a WMS Capabilities dokumentumban listázott rétegek közül a dlgstln2 - patakok Itasca megyében. Hozzáadjuk ezt a MapCache szolgáltatáshoz mint egy új csempe készlet. Először hozzáadunk egy <source> `` blokkot - ez a konfiguráció az adatok kinyeréséhez a WMS szerverből. Adja a következő XML blokkot a létező ``mapcache-quickstart.xml``hez ``<source name="lake_source" type="wms">...</source> tavakhoz használt blokk után:

<source name="streams_source" type="wms">
  <getmap>
    <params>
      <FORMAT>image/png</FORMAT>
      <LAYERS>dlgstln2</LAYERS>
      <MAP>/usr/local/www/docs_maps/mapserver_demos/itasca/itasca.map</MAP>
    </params>
  </getmap>
  <http>
    <url>http://localhost/cgi-bin/mapserv?</url>
  </http>
</source>

Az <params> blokkot használjuk a WMS rétegnév és a képformátum átadására a WMS szerverhez, a MapServer specifikus <map> paraméterrel. A WMS szerver URL-je a <http> blokkban van. Az összes konfiguráció fájl elem dokumentációjához nézze meg a Konfiguráció documentációt.

Ezután hozzáadunk egy <tileset> blokkot, mely megadja, hogyan tároljuk a forrást és hogyan szolgáltatjuk csempeként. Helyezze el a következő blokkot a létező <tileset name="lakes">...</tileset> blokk után.

<tileset name="streams">
  <source>streams_source</source>
  <cache>disk</cache>
  <grid>GoogleMapsCompatible</grid>
  <format>PNG</format>
</tileset>

A rács típust a beépített GoogleMapsCompatible rácsra állítjuk, melyet sok web térkép alkalmazás alapértelmezett csempe sémaként használ. A name=streams-et használja a kliens alkalmazás a csempekészlet eléréséhez. Lemez alapú gyorsítótárat használunk (inkább mint adatbázisban tárolt csempéket vagy felhő környezetet).

Bármikor a MapCache konfiguráció fájl módosítása után a módosítások érvényesítése érdekében újra be kell tölteni az Apache-t. Ez a parancssorból futtatható a következőképpen:

sudo apachectl -k graceful

Most már elérheti a csempét a következő URL-el: http://localhost/itasca/gmaps/streams@GoogleMapsCompatible/12/987/1433.png

../../_images/stream_tile.png

Most adjuk a csempe készletet az OpenLayers térképünkhöz. Nyissa meg a HTML oldalt a következő parancs használatával:

sudo featherpad /var/www/html/mapcache-quickstart/index.html

Szüntesse meg a komment jeleket az alábbi JavaScript kódban:

,new ol.layer.Tile({
    source: new ol.source.XYZ({
        url: 'http://localhost/itasca/gmaps/streams@GoogleMapsCompatible/{z}/{x}/{y}.png'
    })
})

Most frissítse azt oldalt http://localhost/mapcache-quickstart/ - látnia kell a MapCache által szolgáltatott új patakok réteget.

../../_images/openlayers.png

Ahogy böngészi a térképet láthatja a csempe mappákat a /var/cache/mapcache-ben PGN képekkel feltöltve.

../../_images/tilecache.png

A gyorsítótár helyét és típusát a konfiguráció fájlban állíthatjuk be a következő blokkal:

<cache name="disk" type="disk">
  <base>/var/cache/mapcache</base>
  <symlink_blank/>
</cache>

Új szolgáltatás hozzáadása

Úgy konfigurálhatja az Apache-t, hogy több különböző MapCache szolgáltatást futtasson, mindegyiket a saját konfiguráció fájljával, az /etc/apache2/conf-enabled/mapcache.conf fájl szerkesztésével. Mivel ez rendszergazda jogosultságot igényel, megnyithatja szerkesztésre a FeatherPad-ben a következő paranccsal:

sudo featherpad /etc/apache2/conf-enabled/mapcache.conf

Az OSGeoLive két MapCache szolgáltatással rendelkezik, mindegyikhez tartozik egy alias és egy konfigurációs fájl. Az alias a szerveren használandó URL pl. http://localhost/mapcache and http://localhost/itasca

<IfModule mapcache_module>
   <Directory /path/to/directory>
      Order Allow,Deny
      Allow from all
   </Directory>
   MapCacheAlias /mapcache "/usr/share/doc/libapache2-mod-mapcache/examples/mapcache.xml"
   MapCacheAlias /itasca "/home/user/mapcache.xml"
</IfModule>

Egy új szolgáltatás hozzáadásához egyszerűen adjon egy új sort a következő formátumban, helyettesítse a WEB_PATH-t és a PATH_TO_CONFIG_FILE-t a megfelelő paraméterekkel:

MapCacheAlias WEB_PATH "PATH_TO_CONFIG_FILE"

Lásd az Apache modul instrukciókat az Apache modul konfigurálás további részleteiről.

A feltöltő alkalmazás

A térkép csempéket dinamikusan hozzuk létre, amikor a web szerver kéri. A lekérdezési idők felgyorsítására egy parancssori alkalmazással csempéket generálhatunk. Ezt az eljárást mint feltöltést ismerjük és a MapCache parancssori alkalmazás a mapcache_seed.

Annak biztosítására, hogy a feltöltő alkalmazás által létrehozott csempék elérhetők legyenek a web szerver felhasználó számára a sudo -u www-data részt adjuk a mapcache_seed alkalmazás futtatása elé.

Az alábbi példában három paramétert adunk át a mapcache_seed-nek:

  • config: /home/user/mapcache/mapcache-quickstart.xml - ez az elérési út a MapCache konfigurációs fájlhoz

  • tileset: lakes - ez a csempe készlet neve, melyet feltöltünk és a mapcache-quickstart.xml-ben található

  • zoom: 0,5 - ez a nagyítási szintek tartománya, melyet feltöltünk, a 0-s nagyítási szinttől (a világ terjedelme egyetlen csempében) az 5-ös nagyítási szintig

sudo -u www-data mapcache_seed --config /home/user/mapcache/mapcache-quickstart.xml --tileset lakes --zoom 0,5

További számos más mapcache_seed paraméterekhez kérjük nézze meg a Seeder dokumentációt.

../../_images/seeder.png

Ha el akar távolítani egy gyorstár mappát, a következő parancsot futtathatja:

sudo rm -r /var/cache/mapcache/lakes

Mi a következő?

  • Olvassa el a MapCache Dokumentációt.

  • Csatlakozzon a MapServer közösséghez, melynek része a MapCache a levelező listákon az elképzelések megosztásához, a lehetséges fejlesztések megvitatásához és kérdések feltételéhez.