Uživatelské nástroje

Nástroje webu


manual:advanced:customization:online_maps

Vlastní online mapy


Základní informace

  • Soubor XML - obsahuje popis poskytovatelů Online map (více níže). Název a cesta k tomuto souboru na paměťové kartě (nebo vnitřní paměti) je /CARD_ROOT/Locus/mapsOnline/custom/ .xml (ve složce můžete mít více než jeden xml, Locus Map je přidá všechny)
  • Obrázky PNG (volitelné) - pro každý název poskytovatele mapy. Tato ikona není povinná! Zobrazuje se pouze vedle názvu mapy ve Správci map. Název této ikony by měl být stejný jako text ve jmenovce.

Ukázka mapy

Příklad mapy OpenPiste (založené na OSM) vytvořené ze tří vrstev:

  1. vrstva pozadí není viditelná v seznamu map, ale je povinná.
  2. vrstevnicová vrstva, viditelná, ale není ve skutečnosti nutná. Pokud tato vrstva není na některých místech viditelná a když server vrátí kód 404 pro chybějící dlaždice, můžete vrstvu pozadí stále vidět.
  3. stínící vrstva, také není nutná. Tato vrstva je viditelná v seznamu map - vyplňte správný „režim“ a „oblast“ (volitelné).

Odkaz přidaný do záhlaví se v tomto případě nedoporučuje.

Kód mapy v souboru providers.xml

poskytovatelé.xml
<?xml verze="1.0" kódování="UTF-8"?>
    <poskytovatelé>
       <poskytovatel id="1000" typ="0" viditelný="Nepravdivé" požadováno="True" pozadí="-1">
          <jméno>OSM</name>
          <režim>pozadí</mode>
          <url></url>
          <zoomPart>{z}-8</zoomPart>
          <zoomMin>8</zoomMin>
          <zoomMax>24</zoomMax>
          <velikost dlaždice>256</tileSize>
          <měřítko dlaždic dpi="0" více="2.0" nahradit="19" />
          <extraHeader>Referer#http://locus.asamm.cz/</extraHeader>
       </poskytovatel>
       <poskytovatel id="1001" typ="0" viditelný="Nepravdivé" požadováno="Nepravdivé" pozadí="1000">
          <jméno>OSM</name>
          <režim>kontury</mode>
          <url></url>
          <zoomPart>{z}-8</zoomPart>
          <zoomMin>8</zoomMin>
          <zoomMax>24</zoomMax>
          <velikost dlaždice>256</tileSize>
          <měřítko dlaždic dpi="0" více="2.0" nahradit="19" />
          <extraHeader>Referer#http://locus.asamm.cz/</extraHeader>
       </poskytovatel>
       <poskytovatel id="1002" typ="0" viditelný="True" požadováno="Nepravdivé" pozadí="1001">
          <jméno>OSM</name>
          <režim>OpenPiste</mode>
          <url></url>
          <zoomPart>{z}-8</zoomPart>
          <zoomMin>8</zoomMin>
          <zoomMax>24</zoomMax>
          <velikost dlaždice>256</tileSize>
          <měřítko dlaždic dpi="0" více="2.0" nahradit="19" />
          <země>Celým Světem</země>
          <použití>turistika, lyžování</ použití>
          <extraHeader>Referer#http://locus.asamm.cz/</extraHeader>
       </poskytovatel>
    </poskytovatelé>

Specifikace definice mapy

  • id - požadovaný identifikátor, musí být vyšší nebo roven 1000. Nižší hodnoty jsou vyhrazeny pro Locus Map.
  • typ - typ poskytovatele map
    • 0 - Sférický mercátor, projekce Sférická, inverzní Y
    • 1 - Sférický mercátor, projekce Sférický, normální Y
    • 2 - Sférický mercator, projekce elipsoid, inverzní Y
    • 3 - Sférický mercator, projekce elipsoidní, normální Y
    • 4 - Spherical Mercator, projekce Spheric, Y ze středu
    • 5 - Spherical mercator, projekce Spheric, mapový systém Quadkey (více informací zde: http://msdn.microsoft.com/en-us/library/bb259689.aspx)
      • použijte {c} pouze pro souřadnicovou část. Nejsou tam žádné souřadnice X, Y, Z URL, jen {c}!
  • viditelný - viditelnost poskytovatele v seznamu
  • požadováno - je vyžadována dlaždice od tohoto poskytovatele? Když server vrátí 404, použít zbytek vícevrstvé mapy nebo ne?
  • pozadí - ID vrstvy pozadí
  • název - jméno poskytovatele
  • způsob - Stručný popis
  • plocha - zastaralé, již nepoužívané
  • url - http://tile… - základní adresa URL pro dlaždice, která se nemění s požadavky. Syntaxe {z}/{x}/{y} pro dlaždice, kde {x} a další nahrazují souřadnice X, Y a přiblížení
    • {X} - nahrazuje X dlaždice
    • {y} - nahrazuje dlaždici Y
    • {z} - nahradí úroveň přiblížení po zoomPart je použit výpočet
    • {ts} - tileScale nahradí hodnotu
    • {s} (nepovinné) - nahradí text serveru
  • serverPart - V hlavní url lze definovat položku {s}. V serverPart pak lze definovat pole položek, které budou náhodně nastaveny jako {s} položka. Tak například 0;1;2 a adresa URL začala jakohttp://tiles{s}.open ….. {z}/{x}/{y}.png]]> nastaví každý hovor na náhodný http://tiles0.open…, nebo http://tiles1.open…, nebo http://tiles2.open...
    ServerPart parametr lze také definovat pomocí x, y a parametry v jednoduchém matematickém vzorci:
     ({x}+{y})%4
  • zoomPart - {z}-8 - syntaxe pro přepočet správné hodnoty přiblížení pro požadavek. Tato hodnota je obvykle Zoom - minimální přiblížení, ale může se lišit
  • zoomMin - minimální zoom
  • zoomMax - maximální zoom
  • velikost dlaždice - velikost dlaždic v pixelech
  • tileScale - definuje faktor měřítka (multi) na 2x, DPI, na které se má použít (dpi, 0 = všechna zařízení) a hodnotu, která bude nahrazena v url (nahradit, nesmí být prázdné)
  • země - seznam zemí (oddělených čárkami) relevantních pro mapu. Tyto hodnoty se používají pro oddělení map na „kartě Online mapa“.
  • používání - seznam možných použití této mapy (oddělené čárkami). Aktuální možnosti jsou: aero, město, kolo, turistika, námořní, překryv, foto, silnice, lyže, doprava. Tyto hodnoty se používají pro oddělení map na „kartě Online mapa“.
  • extraHeader - extra požadavek Http, který je přidán k požadavku dlaždice na serveru. Tato další data se skládají ze dvou částí se syntaxí part1#part2. Část1 je název požadavku, Část2 je hodnota požadavku. Také tento TAG by měl být v XML pro každého poskytovatele více než jednou.
  • přisuzování - krátký text zobrazený ve spodní části obrazovky s mapou. Použijte to, když používáte mapy chráněné autorským právem, které v podmínkách použití vyžadují uvedení zdroje.

ZoomValues ​​(zoomMin, zoomMax) se musí počítat jako platná úroveň přiblížení 2^x. Celý Svět má tedy jednu dlaždici 256×256 px, což znamená 2^8, tedy X = 8!. To je důvod, proč téměř všechny mapy v Locusu začínají na zoomMin = 8, ale mají zoomPart {z} - 8. Je to proto, že v URL obvykle zoomy začínají od 0 do nějaké maximální hodnoty.

Toto řešení by se mělo zlepšit, takže pokud máte nějaké nápady, řekněte nám to. Zkušený vývojář Android by měl být také schopen vytvořit nějaký mechanismus pro přidávání externích poskytovatelů prostřednictvím ContentProviders nebo služeb.

Nyní znáte syntaxi poskytovatelů, takže byste měli přidat své vlastní. Prosím, sdílejte odkazy s ostatními a užijte si to!

Tipy

  • poskytovatelé se stejným názvem budou seskupeni
  • pokud přidáte ikonu PNG do vlastního adresáře se stejným názvem jako název poskytovatele, bude připojena k obrazovce online mapy

Jak získat požadované informace

Doporučujeme používat prohlížeč Firefox s rozšířením HttpFox:

  • Spusťte prohlížeč Firefox a otevřete webovou stránku s mapou. Pěkný příklad je http://www.openstreetmap.org/.
  • Otevřete HttpFox z nabídky Nástroje nebo pomocí SHIFT-F2. A stiskněte horní zelené tlačítko Start.
  • Nyní přibližte o jednu úroveň a na mapovém serveru uvidíte seznam požadavků. Viz snímek obrazovky níže.
  • vzít vybrané URL čára. Požadované URL je vpravo, takže když oddělíme část se souřadnicemi, pak 12/2215/1389 bude cooPart zapsáno jako {z}/{x}/{y}.
  • zbytek je url část, takže to bude vypadat http://c.tile.openstreetmap.org/{c}.png.
  • Toto jsou hlavní hodnoty potřebné pro přidání mapy. Velikost dlaždic je obvykle 256 px. Minimální a maximální hodnoty zoomu je nutné otestovat ručně. Také zoomPart je obvykle z-8, což znamená, že zoom 20 v Locusu bude obsluhován jako 12 v požadavku na serveru.

Další ukázkou vlastní online mapy může být XML soubor Strava Global Heatmap, který jsme připravili společně s našimi uživateli. Obsahuje cyklistické a běžecké vrstvy a lze jej stáhnout zde >>. Stačí jej rozbalit v adresáři Locus/mapsOnline/custom a užívat si!

Vlastní Open Map Tile Server

Deaktivace limitu stahování map

Pokud provozujete svůj vlastní server mapových dlaždic, možná budete potřebovat zrušit limit stahování dlaždic který je standardně nastaven v Locusu, aby byl zachován slušný provoz při stahování na aplikaci:

  1. Povolit mod_headers: hlavičky sudo a2enmod
  2. Upravte konfigurační soubor Apache (/etc/apache2/apache2.conf) a přidejte na konec: Header set locus_disable_download_limit “true”
manual/advanced/customization/online_maps.txt · Poslední změna: 2019. 07. 03 16:33 uživatelem stupka