Wir verbinden Online-Karten mit dem Navigator auf dem Smartphone. Teil 1 - Standard-Rasterkarten

Wie sind Online-Karten? Wie finde ich die Serveradresse der Karte heraus, an der Sie interessiert sind? Wie erstelle ich eine Einstellungsdatei, mit der der Navigator auf dem Smartphone eine Verbindung zu dieser Karte herstellen kann?


Inhalt:


1 - Einführung. Standard-Rasterkarten
2 - Fortsetzung. Schreiben eines einfachen Rasters für Vektorkarten
3 - Ein Sonderfall. Wir verbinden die OverpassTurbo-Karte


Eintrag


Unter den Navigationsanwendungen für Smartphones gibt es solche, die für den Tourismus und alle Arten von Vorortaktivitäten konzipiert sind. Zu den bekanntesten gehören OsmAnd, Locus und GuruMaps. Alle zeichnen sich durch eine Vielzahl spezialisierter Funktionen aus, die sich auf dem Weg als nützlich erweisen können. Und auch eine noch größere Anzahl aller Arten von (manchmal sehr verwirrenden) Einstellungen. Aber jetzt interessiert uns vor allem eines: die Möglichkeit, zusätzliche Karten hinzuzufügen und schnell zwischen ihnen zu wechseln.


Ich stelle fest, dass dies eine äußerst nützliche Funktion ist. Schließlich kann ein und derselbe Bereich des Geländes auf Karten verschiedener Typen sehr unterschiedlich gezeichnet werden . Bevor schwierige Bereiche überwunden werden, ist es daher hilfreich, sich bei jedem dieser Bereiche erkundigen zu können. Wenn hierfür jedoch mehrere separate Anwendungen auf einem Smartphone ausgeführt werden müssten, wäre dies äußerst unpraktisch. Die Leistung verschlechtert sich und der Akku wird schneller verbraucht. Es ist also sehr schön, dass es die Möglichkeit gibt, mit nur einer Anwendung auszukommen: einer Art kartografischem Aggregator mit einer praktischen Oberfläche, die speziell für den schnellen Wechsel zwischen Karten entwickelt wurde.


Also. Das Hinzufügen neuer Karten ist in der Regel relativ einfach. Der Anwendungsordner verfügt über einen Unterordner mit Voreinstellungen . Das heißt, bei Sicherungsdateien, in denen die Einstellungen zum Herunterladen einer bestimmten Karte angezeigt werden. Mal sehen, was sie sind.


Ich stelle fest, dass die Voreinstellungen für alle Anwendungen mehr oder weniger ähnlich sind. Als Beispiel betrachten wir GuruMaps, da es sowohl für Android als auch für iOS ist. Stellen wir uns also vor, wir gingen in den Ordner mit seinen Voreinstellungen, fanden dort eine Datei namens openstreetmaps.ms und öffneten sie dann mit einem normalen Texteditor.


<?xml version="1.0" encoding="UTF-8"?> <customMapSource> <name>OpenStreetMaps</name> <minZoom>0</minZoom> <maxZoom>18</maxZoom> <url>http://{$serverpart}.tile.openstreetmap.org/{$z}/{$x}/{$y}.png</url> <serverParts>ab c</serverParts> </customMapSource> 

Tatsächlich haben wir nur eine Liste mit mehreren Werten. Betrachten wir sie der Reihe nach:


name - Der Name der Karte, die in der Anwendung angezeigt wird
minZoom - Ab welcher Zoomstufe wird diese Karte angezeigt
maxZoom - Bis zu welcher Zoomstufe wird diese Karte angezeigt
url - Vorlage für den Zugriff auf Kartendateien
serverParts - Wenn der Server, auf dem die Kartendateien gespeichert sind, mehrere Spiegel hat, müssen Sie deren Namen auflisten


Bevor ich fortfahre, stelle ich fest, dass große Karten für die Speicherung auf Servern in kleine Teile zerlegt werden. Normalerweise sind dies PNG-Bilder mit einer Größe von 256 x 256 Pixel. Diese Fragmente werden Kacheln genannt .



Schauen wir uns nun die URL-Vorlage genauer an.


http://{$serverpart}.tile.openstreetmap.org /{$z}/{$x}/{$y}.png


Der Navigator ersetzt die Wörter in geschweiften Klammern automatisch durch die „Koordinaten“ des aktuell benötigten Kartenfragments. Folgendes wird die Stubs genau ersetzen:


{$ serverpart} - Einer der serverParts-Werte wird hier ersetzt.
{$ z} - Die Zoomstufe, für die Sie ein Kartenfragment herunterladen möchten
{$ x} - Die horizontale Nummer des Kartenfragments
{$ y} - Die Nummer des Kartenfragments vertikal


Nach dem Ersetzen der Werte erhält der Navigator einen Link, über den die Datei mit dem erforderlichen Kartenfragment heruntergeladen wird. Zum Beispiel:


http://a.tile.openstreetmap.org /12/2478/1265.png


Wenn der Download abgeschlossen ist, wird die heruntergeladene Kachel auf dem Smartphone-Bildschirm angezeigt.


Fügen Sie Ihre Karte hinzu


Angenommen, Sie haben im Internet eine Karte gefunden, die Sie interessiert und die Sie wirklich gerne mit Ihrem Smartphone verbinden möchten. Lass es uns versuchen. Rufen Sie zunächst mit einem Browser auf Ihrem Computer die Site mit einem Fenster zum Anzeigen dieser Karte auf. Zum Beispiel dieser .



Öffnen Sie das Panel mit den Entwicklertools (Strg + Alt + I für Google Chrome).


Wechseln Sie im folgenden Fenster zur Registerkarte Quellen.


Wir öffnen alle Ordner der Reihe nach, bis wir den Ordner mit Bildern von Schnitten der angezeigten Karte finden.


Klicken Sie mit der rechten Maustaste auf den Dateinamen. Wählen Sie im folgenden Menü die Option Linkadresse kopieren



Zum Beispiel haben wir einen solchen Link
http://anygis.herokuapp.com/Combo_Best_Genshtab/1242/639/11


Sie müssen verstehen, was genau diese Zahlen bedeuten. Wir überprüfen von unserer Referenzkarte - OpenStreetMaps.


http://a.tile.openstreetmap.org/1242/639/11.png


Wird nicht geladen. Versuchen wir, die Zahlen zu tauschen.
http://a.tile.openstreetmap.org/11/1242/639.png


Geladen! Vergleichen Sie nun die Kachel, die Sie durch den ersten und zweiten Link erhalten haben:



Wir haben dafür gesorgt, dass die Kacheln dieser beiden Karten dieselbe Stelle aufweisen. Und vor allem keine Offsets. Die Karte, die wir gefunden haben, wurde in einer Standardprojektion erstellt und ist für den Anschluss geeignet.


Nun, da wir wissen, in welcher Reihenfolge die Koordinaten für OpenStreetMaps waren - z, x, y - können wir sicher sagen, in welcher Reihenfolge sie auf unserer Karte angezeigt werden.


http://anygis.herokuapp.com/Combo_Best_Genshtab/{$x}/{$y}/{$z}


Vergrößern und verkleinern Sie nun die Karte im Ansichtsfenster. Wir stellen also fest, dass die Karte erst ab dem 0. und 15. Zoom geladen wird.


Wenn die URL mit einem einzelnen Buchstaben oder einer einzelnen Zahl beginnen würde, könnten dort andere Werte ersetzt werden. Aber normalerweise gibt es entweder a, b, c oder 0,1,2,3 .


Jetzt haben wir alle erforderlichen Parameter herausgefunden und können eine Voreinstellung für unsere neue Karte erstellen.


 <?xml version="1.0" encoding="UTF-8"?> <customMapSource> <name>.   </name> <minZoom>0</minZoom> <maxZoom>15</maxZoom> <url>http://anygis.herokuapp.com/Combo_Best_Genshtab/{$x}/{$y}/{$z}</url> </customMapSource> 

Es bleibt, die Datei unter einem neuen Namen zu speichern und Ihrer Navigationsanwendung hinzuzufügen. Für iOS - ziehen Sie die Datei einfach per Drag & Drop in den Anwendungsordner (über iTunes). Für Android - kopieren Sie die Datei in das folgende Verzeichnis:


Android\data\com.bodunov.GalileoPro\files\Imported


Wenn Sie nun den Navigator öffnen, wird das, was Sie getan haben, in der Liste der Karten angezeigt. Glückwunsch!



Wie Sie sehen können, war es ziemlich einfach. Und das Beste ist, dass der gesamte Prozess für alle oben genannten Navigatoren mehr oder weniger ähnlich ist. Schnell, vielseitig und plattformübergreifend.


Natürlich gibt es Karten in nicht standardmäßigen Projektionen. Oder mit nicht standardmäßiger Nummerierung. In diesem Artikel habe ich beschrieben, wie dieses Problem gelöst werden kann. Trotzdem kann die überwiegende Mehrheit der im Internet gefundenen Karten einfach und ohne zusätzliche Probleme verbunden werden.


Übrigens können Sie auf meiner AnyGIS- Website vorgefertigte Voreinstellungen herunterladen. Sie werden automatisch in den Formaten aller oben genannten Navigatoren basierend auf der von mir gesammelten Datenbank generiert. Und regelmäßig aktualisiert. Also, falls nötig, herunterladen und verwenden.


Nun, das ist mit der Einführung vorbei. Im nächsten Artikel werde ich Ihnen erklären, wie Sie Vektor-Online-Karten verbinden.

Source: https://habr.com/ru/post/de461031/


All Articles