Benutzertools

Site-Tools


Handbuch:advanced:customization:online_maps

Benutzerdefinierte Online-Karten


Grundinformation

  • XML-Datei - enthält eine Beschreibung von Online-Kartenanbietern (mehr unten). Name und Pfad zu dieser Datei auf Speicherkarte (oder internem Speicher). /CARD_ROOT/Locus/mapsOnline/custom/ .xml (Sie können mehr als eine XML im Ordner haben, Locus Map fügt sie alle hinzu)
  • PNG-Bilder (optional) - für jeden Kartenanbieternamen. Dieses Symbol wird nicht benötigt! Es wird einfach neben dem Kartennamen im Kartenmanager angezeigt. Der Name dieses Symbols sollte mit dem Text im Namensschild übereinstimmen.

Beispielkarte

Ein Beispiel für eine OpenPiste-Karte (OSM-basiert), die aus drei Ebenen erstellt wurde:

  1. Hintergrundebene in der Kartenliste nicht sichtbar, aber erforderlich.
  2. Konturschicht, sichtbar, aber nicht wirklich erforderlich. Wenn diese Ebene an einigen Stellen nicht sichtbar ist und der Server den 404-Code für fehlende Kacheln zurückgibt, können Sie immer noch die Hintergrundebene sehen.
  3. Schattenschicht, ebenfalls nicht erforderlich. Diese Ebene ist in der Kartenliste sichtbar - füllen Sie den korrekten „Modus“ und „Bereich“ aus (optional).

Der dem Header hinzugefügte Referer wird in diesem Fall nicht empfohlen.

Kartencode in der Datei „providers.xml“.

provider.xml
<?xml Version="1.0" Codierung="UTF-8"?>
    <Anbieter>
       <Anbieter id="1000" tippe="0" sichtbar="False" falls angefordert="True" Hintergrund=-1>
          <Name>OSM</Name>
          <Modus>Hintergrund</mode>
          <URL></url>
          <zoomPart>{z}-8</zoomPart>
          <zoomMin>8</zoomMin>
          <zoomMax>24</zoomMax>
          <tileSize>256</tileSize>
          <tileScale dpi="0" Multi="2.0" ersetzen="19" />
          <extraHeader>Referrer#http://locus.asamm.cz/</extraHeader>
       </Anbieter>
       <Anbieter id="1001" tippe="0" sichtbar="False" falls angefordert="False" Hintergrund="1000">
          <Name>OSM</Name>
          <Modus>Konturen</mode>
          <URL></url>
          <zoomPart>{z}-8</zoomPart>
          <zoomMin>8</zoomMin>
          <zoomMax>24</zoomMax>
          <tileSize>256</tileSize>
          <tileScale dpi="0" Multi="2.0" ersetzen="19" />
          <extraHeader>Referrer#http://locus.asamm.cz/</extraHeader>
       </Anbieter>
       <Anbieter id="1002" tippe="0" sichtbar="True" falls angefordert="False" Hintergrund="1001">
          <Name>OSM</Name>
          <Modus>OpenPiste</mode>
          <URL></url>
          <zoomPart>{z}-8</zoomPart>
          <zoomMin>8</zoomMin>
          <zoomMax>24</zoomMax>
          <tileSize>256</tileSize>
          <tileScale dpi="0" Multi="2.0" ersetzen="19" />
          <Länder> Welt</Länder>
          <Verwendung>Wandern, Skifahren</Verwendung>
          <extraHeader>Referrer#http://locus.asamm.cz/</extraHeader>
       </Anbieter>
    </Anbieter>

Spezifikationen der Kartendefinition

  • id - erforderliche Kennung, muss größer oder gleich 1000 sein. Niedrigere Werte sind für Locus Map reserviert.
  • tippe - Art des Kartenanbieters
    • 0 - Sphärischer Mercator, Projektion sphärisch, inverses Y
    • 1 - Kugelförmiger Mercator, Projektion Kugelförmig, normales Y
    • 2 - Kugelmercator, Projektionsellipsoid, inverses Y
    • 3 - Kugelmercator, Projektion Ellipsoid, normales Y
    • 4 - Kugelförmiger Mercator, Projektion Kugelförmig, Y von der Mitte
    • 5 - Spherical Mercator, Projection Spheric, Quadkey-Kartensystem (mehr Infos hier: http://msdn.microsoft.com/en-us/library/bb259689.aspx)
      • Verwenden Sie {c} nur für den Koordinatenteil. Es sind keine X-, Y-, Z-Koordinaten enthalten URL, nur C}!
  • sichtbar - Sichtbarkeit des Anbieters in der Liste
  • falls angefordert - wird eine Kachel dieses Anbieters benötigt? Wenn der Server 404 zurückgibt, Rest der mehrschichtigen Karte verwenden oder nicht?
  • Hintergrund - ID der Hintergrundebene
  • Name - Name des Anbieters
  • Modus - kurze Beschreibung
  • Gesamtfläche unserer Sitzes - veraltet, wird nicht mehr verwendet
  • URL - http://tile… - Basis-URL für Kacheln, die sich bei Anfragen nicht ändert. {z}/{x}/{y}-Syntax für Kacheln, wobei {x} und andere X-, Y-Koordinaten und Zoom ersetzen
    • {X} - ersetzt X Kachel
    • {y} - ersetzt Y-Fliese
    • {z} - ersetzt die Zoomstufe nach zoomTeil Berechnung angewendet wird
    • {ts} - tileScale ersetzt Wert
    • {s} (optional) - ersetzt den Servertext
  • serverPart - {s} Artikel kann in der Haupt-URL definiert werden. In serverPart kann dann ein Array von Items definiert werden, die zufällig als {s} Item gesetzt werden. Also zum Beispiel 0;1;2 und URL begann alshttp://tiles{s}.öffnen ….. {z}/{x}/{y}.png]]> wird jeden Anruf so einstellen, dass er zufällig ist http://tiles0.open…, oder http://tiles1.open…, oder http://tiles2.open...
    ServerPart Parameter kann auch durch definiert werden x, y und Parameter in einer einfachen mathematischen Formel:
     ({x}+{y})%4
  • zoomTeil - {z}-8 - Syntax zur Neuberechnung des korrekten Zoomwerts für die Anfrage. Dieser Wert ist normalerweise Zoom - minimaler Zoom, kann aber anders sein
  • ZoomMin - minimaler Zoom
  • zoomMax - maximaler Zoom
  • Fliesengröße - Größe der Kacheln in Pixel
  • TileScale - Definiert den Skalierungsfaktor (multi) auf 2x, die DPI, auf die angewendet werden soll (dpi, 0 = alle Geräte) und den Wert, der in der URL ersetzt wird (ersetzen, darf nicht leer sein)
  • Länder - Liste der für die Karte relevanten Länder (durch Kommas getrennt). Diese Werte werden zum Trennen von Karten in der Registerkarte „Online-Karte“ verwendet.
  • Verwendung - Liste der möglichen Verwendungen dieser Karte (durch Kommas getrennt). Aktuelle Optionen sind: aero, stadt, radfahren, wandern, nautik, overlay, foto, straße, ski, transport. Diese Werte werden zum Trennen von Karten in der Registerkarte „Online-Karte“ verwendet.
  • extraHeader - zusätzliche Http-Anforderung, die der Kachelanforderung auf dem Server hinzugefügt wird. Diese Zusatzdaten bestehen aus zwei Teilen mit der Syntax part1#part2. Teil1 ist der Anforderungsname, Teil2 ist der Anforderungswert. Auch dieser TAG sollte bei jedem Anbieter mehr als einmal im XML vorhanden sein.
  • Zuschreibung - Kurztext, der am unteren Rand des Kartenbildschirms angezeigt wird. Bitte verwenden Sie dies, wenn Sie urheberrechtlich geschützte Karten verwenden, die in ihren Nutzungsbedingungen eine Zuordnung erfordern.

ZoomValues ​​(zoomMin, zoomMax) müssen 2^x als gültige Zoomstufe gezählt werden. Die ganze Welt hat also eine Kachel 256×256 px, was 2^8 bedeutet, also X = 8!. Aus diesem Grund beginnen fast alle Karten in Locus mit zoomMin = 8, haben aber zoomPart {z} - 8. Dies liegt daran, dass Zooms in URLs normalerweise bei 0 bis zu einem bestimmten Maximalwert beginnen.

Diese Lösung sollte verbessert werden. Wenn Sie also Ideen haben, teilen Sie uns dies mit. Außerdem sollte ein erfahrener Android-Entwickler in der Lage sein, einen Mechanismus zum Hinzufügen externer Anbieter über ContentProviders oder Dienste zu erstellen.

Jetzt kennen Sie die Syntax von Anbietern, also sollten Sie Ihre benutzerdefinierten hinzufügen. Bitte teilen Sie die Links mit anderen und genießen Sie!

Hinweise

  • gleichnamige Anbieter werden zusammengefasst
  • Wenn Sie dem benutzerdefinierten Verzeichnis ein PNG-Symbol mit demselben Namen wie dem Anbieternamen hinzufügen, wird es an den Online-Kartenbildschirm angehängt

So erhalten Sie die erforderlichen Informationen

Wir empfehlen die Verwendung des Firefox-Browsers mit der Erweiterung HttpFox:

  • Starten Sie den Firefox-Browser und öffnen Sie eine Webseite mit Karte. Schönes Beispiel ist http://www.openstreetmap.org/.
  • Öffnen Sie HttpFox im Menü Extras oder mit SHIFT-F2. Und drücken Sie die obere grüne Starttaste.
  • Zoomen Sie nun um eine Stufe und Sie sehen die Liste der Anfragen auf dem Kartenserver. Siehe Screenshot unten.
  • ausgewählt nehmen URL Linie. Erforderlich URL ist auf der rechten Seite, also wenn wir Teil mit Koordinaten trennen, dann wird 12/2215/1389 als cooPart geschrieben als {z}/{x}/{y}.
  • der Rest ist ein URL-Teil, so wird es aussehen http://c.tile.openstreetmap.org/{c}.png.
  • Dies sind die Hauptwerte, die zum Hinzufügen einer Karte benötigt werden. Tilesize ist normalerweise 256 px. Min- und Max-Zoomwerte müssen manuell getestet werden. Auch zoomPart ist normalerweise z-8, was bedeutet, dass Zoom 20 in Locus als 12 in der Anfrage auf dem Server bereitgestellt wird.

Ein weiteres Beispiel für eine benutzerdefinierte Online-Karte kann die Strava Global Heatmap XML-Datei sein, die wir zusammen mit unseren Benutzern erstellt haben. Es enthält Fahrrad- und Laufschichten und kann heruntergeladen werden hier >>. Entpacken Sie es einfach in das Verzeichnis Locus/mapsOnline/custom und genießen Sie es!

Eigener Open Map Tile Server

Limit für das Herunterladen von Karten deaktivieren

Wenn Sie einen eigenen Kartenkachelserver betreiben, müssen Sie dies möglicherweise tun Kachel-Download-Limit aufheben das in Locus standardmäßig eingestellt ist, um einen anständigen Download-Traffic pro Anwendung aufrechtzuerhalten:

  1. mod_headers aktivieren: sudo a2enmod-Header
  2. Bearbeiten Sie die Apache-Konfigurationsdatei (/etc/apache2/apache2.conf) und am Ende hinzufügen: Header set locus_disable_download_limit „true“
manuell/advanced/customization/online_maps.txt · Zuletzt geändert: 2019 07:03 von mstupka