Grid Reference Dienstprogramme
Details und Download
Einführung
In vielen Ländern gibt es lokale Gitterreferenzsysteme durch lokale Zuordnung verwendet, was eine einfache Gitter Referenzen statt Breite / Länge verwendet werden. Diese Script-Bibliotheken bieten Möglichkeiten, diese in ihre Breite / Länge Äquivalente zu konvertieren. Darüber hinaus bieten sie zusätzliche Funktionen für die Netzbezugssysteme in den britischen Inseln verwendet, Möglichkeiten bieten sie in verschiedene Formate zu konvertieren. Sie können auch Transformationen zwischen verschiedener Breite / Länge Erdmodelle ausführen, einschließlich außerhalb der britischen Inseln verwendet.
Die Mathematik verwendet, um zwischen Gitter Referenzen und Breite / Länge (geodätischen Koordinaten) und zwischen verschiedenen Modellen der Erde umzuwandeln, ist äußerst kompliziert. Kleinere Fehler können leicht eine Quelle großer Fehler sein. Ein großer Teil der Pflege müssen die Umrechnungsalgorithmen genau zu folgen genommen werden, und das ist, was diese Skripte für Sie tun. diese Skripte verwenden, können Sie Ihre eigenen Skripte vereinfachen, so dass sie über die Verwendung der erhaltenen Werte konzentrieren.
Zum Herunterladen des Skripts (s), und sehen Sie die Script-Lizenz, nutzen Sie die Links auf der Navigationsleiste am oberen Rand dieser Seite.
Beispielkonvertierungen
Ein Hinweis auf die Umwandlungsgenauigkeit
Wenn zwischen UK / Irish Grid Referenzen und GPS-Koordinaten umzuwandeln, oder zwischen verschiedenen Erdmodelle werden Fehler durch die Umwandlung Algorithmen eingeführt werden. Die Konvertierung erfolgt mit Helmert-Transformation durchgeführt (eine der Arten von Conversion vorgeschlagen von Ordnance Survey), und dies sind dafür bekannt, unvollkommen sein, wegen der Unvollkommenheit der Erde eigener Form. Die Transformationen zwischen der Helmert- Ordnance Survey oder Ordnance Survey Irland und GPS Erde Modellen haben einen Fehler von bis zu 5 Metern horizontal und vertikal auf ±. Diese Fehler sind kumulativ, so die Umwandlung von dem O auf OSI-Modell über das GPS-Modell kann einen Fehler von produzieren bis 10 Meter bis zu ±. Umwandlungen zwischen anderen Modelle werden auf der Genauigkeit ihrer Ellipsoide abhängen, und die eigene Form der Erde an diesem Punkt.
Wenn Sie eine höhere Genauigkeit benötigen, als diese Skripte zur Verfügung stellen kann, dann müssen Sie eine andere Art der Konvertierung verwenden, die mit den Ungenauigkeiten der verschiedenen Modelle bewältigen kann. Ordnance Survey nutzen, was sie ein „Gummiblatt“ Transformation nennen, die aufgrund der geringen Unterschiede zwischen den Modellen und Wirklichkeit an mehreren Punkten (eine Korrektur pro Kilometer) führt, und interpolieren die Korrekturen für andere Punkte, die Sie versuchen, entsprechend zu konvertieren. Diese hochgenaue Umwandlung wird als OSTN02 (mit der zugehörigen OSGM02 Umwandlung für Höhen verwendet) bekannt und ist im Rahmen der Ordnance Survey-Tool zur Verfügung.
Unterstützte grid Formate
Die Skripte sind so konzipiert, mit Kartengittern Formaten von Normal Maps und Mapping-Software auf den britischen Inseln verwendet arbeiten, während eine API mit Umbauten an kompatible Karte Netze zu ermöglichen. Darüber hinaus unterstützen sie die beliebtesten Referenz globalen Grid-Formate. Dies bedeutet, dass standardmäßig sie die britische nationale Stromnetz unterstützen, die irische nationale Netz, die irische Transversale Mercator, Universal Transverse Mercator, Universal Polar Stereographisch, GPS-Koordinaten und Koordinaten für die Erde Modelle von der britischen und der irischen nationalen Netzen zum Einsatz.
Verwendungsbeispiele
Konvertieren zwischen grid Referenzen und Breitengrad / Längengrad-Koordinaten GPS
Dies ist sehr einfach von den Skripten gemacht, nur zwei Methodenaufrufe. Der erste wandelt das Gitter in numerische Referenz-Koordinaten, und die zweite wandelt diese Koordinaten in Längengrad / Breitengrad:
Mit UTM oder UPS, ist dies nur ein einziger Methodenaufruf. Sie könnten verwenden optional auch dd_to_dms / ddToDms es in das gewünschte Format zu konvertieren.
Konvertieren zwischen britischen und irischen Gitter Referenzen
Die britische nationale Stromnetz-Referenzsystem und das irische Bezugssystem nationale Netz aufreihen nicht bequem überhaupt, und obwohl es erhebliche Überschneidungen zwischen ihnen an verschiedenen Orten gibt es normalerweise keine einfache Möglichkeit, Gitter Referenzen von einem zum anderen zu übersetzen. Innerhalb von Nordirland, sind beispielsweise Gitter Referenzen in der Regel ausgedrückt das irische nationale Netz Referenzsystem. Unter Verwendung dieser Bibliothek ist es leicht möglich, die Gitterreferenz in dem anderen System zu erhalten:
Ein ähnlicher Ansatz wird in umgekehrter Reihenfolge verwendet oder Koordinaten zwischen irischen Transversale Mercator und der irischen nationalen Netz zu konvertieren. Die irische Transversal-Mercator-Koordinaten können entweder direkt als numerische Koordinaten angegeben werden (so sie nicht brauchen den zusätzlichen Umwandlungsschritt) oder können in ein alternatives Format mit add_grid_units / addGridUnits umgewandelt werden. Konvertieren zwischen unterschiedlichsten Gittern wird auf diese Weise, einschließlich UTM und UPS (für die kleinen Teile, wo sie sich überlappen) durchgeführt, indem die erste Referenz Umwandeln in GPS-Koordinaten, dann Umwandeln von GPS zum anderen Grid Reference System koordiniert.
Konvertieren zwischen Erdmodelle
Die Umrechnung zwischen verschiedenen Erde Modelle sind nur ein wenig härter, wie Sie die entsprechende Quelle und Ziel Ellipsoide wählen haben und Transformation Satz. Sie müssen dies nur verwenden müssen, wenn Sie von einem anderen Abbildungssystem konvertieren, die nicht das WGS84 / GRS80 Earth-Modell nicht verwendet (die Skripte für Sie gelten sie automatisch, wenn zwischen dem UK / Irish Gitter Umwandlung und GPS-Koordinaten). Es ist möglich, eigene Transformation Sets zu erstellen, aber das Leben leichter zu machen, die Skripte kommt mit Transformationssätzen für die folgenden Transformationen:
Transformation setzt standardmäßig verfügbar
Beachten Sie, dass GPS-Software typischerweise das WGS84 Earth-Modell verwendet, die eine verfeinerte Version des GRS80 Earth-Modell ist. Die Skripte verwenden, um die Werte von WGS84, aber Sie können auch eigene Ellipsoide verwenden, um sie zu zwingen, das GRS80 Earth-Modell zu verwenden. In der Praxis ist dies auf die resultierenden Werte keinen signifikanten Unterschied macht, da die Genauigkeit der Transformationen (der praktische Unterschied zwischen den beiden Ellipsoide wird typischerweise als nur etwa 0,1 mm angegeben).
Zum Beispiel zwischen dem Airy 1830 Earth-Modell von Ordnance Survey mit dem modifizierten Airy 1830 Earth-Modell von Ordnance Survey Irland verwendet zu konvertieren, können Sie den folgenden Code verwenden:
Konvertieren von anderen Kartensystemen
Eine große Anzahl von lokalen Mapping-Systeme wurden entwickelt, bestimmten Ländern und Gebieten zu dienen. In vielen Fällen sind diese verwenden den gleichen Ansatz wie die Mapping-Systeme bereits diese Skripte beschäftigen. Sie beginnen mit einem Modell der Erde, die seine elliptische Form am Zielort zu reflektieren versucht. Sie nutzen dann eine Transversal-Mercator-Projektion (oder polare stereographische Projektion) des Ellipsoid, um die Karte zu produzieren. Die Karte wird auf einen spezifischen Teil des Erdmodells (der tatsächliche Ursprung) ausgerichtet ist, und dann in der Regel zu einem anderen falschen Gitterursprung versetzt und skaliert leicht einen Skalierungsfaktor verwendet wird. Dies ist das Datum der betreffenden Kartenprojektion.
Sie müßten erarbeiten, um den Abstand von einer beliebigen Raster Referenz (falls erforderlich) an diesem Gittersystem auf seine falschen Herkunft. Also, wenn die Karten so etwas wie unzählige Briefe verwenden, müssen Sie von diesem Format auf einfache Entfernungen von der falschen Herkunft konvertieren - Rechts- und Hochwert-Koordinaten. Sie müssen dann von der Erde Modell verwendet, um die Ellipsoidparameter zu erhalten. Führen Sie die Ellipsoidparameter in die create_ellipsoid / createEllipsoid Verfahren einen Ellipsoid Parametersatz zu erhalten (wenn Sie Glück haben, um herauszufinden, dass die Karte eine der Erde Modelle verwendet bereits von den Skripten zur Verfügung gestellt, können Sie einfach verwenden get_ellipsoid / getEllipsoid Methode zum Abrufen der geeigneter Ellipsoid Parametersatz). Sie müssen dann von der Kartenprojektion (siehe oben) verwendet, um die Bezugsparameter zu erhalten. Feed-all diejenigen, zusammen mit dem Ellipsoid-Parametersatz, in die create_datum / createDatum Methode einen Datum Parametersatz zu erhalten.
füttert dann Ihre Zahlen in entweder grid_to_lat_long / gridToLatLong oder polar_to_lat_long / polarToLatLong (je nachdem, welche Art der Projektion des Kartensystem verwendet), zusammen mit Ihrem Parametersatz benutzerdefinierten Datums, und es wird die geodätischen Koordinaten des Punktes auf dieser Erde Modell zurückzukehren. Wenn das Abbildungssystem die gleiche Erde Modell wie GPS (WGS84 oder GRS80) verwendet, dann gibt es nichts mehr zu tun. Wenn es ein anderes Ellipsoid verwendet, müssen Sie auch den Helmert Transformationsparameter erhalten für zwischen dieser Erde Modell Umwandlung und dem WGS84 / GRS80 Earth-Modell. Feed-diejenigen in create_transformation / createTransformation einen benutzerdefinierten Helmert-Transformation Parametersatz zu erhalten. Füttern Sie Ihre geodätischen Koordinaten, benutzerdefiniertes Erdmodell, Helmert-Transformation Parametersatz und das bestehende Erdmodell Skript für WGS84 als Ziel Earth-Modell, in Helmert_transform / HelmertTransform. und es kehrt GPS für die Punktkoordinaten.
Und ein Beispiel einer polare stereographische Projektion in PHP:
Natürlich ist es möglich, dass Sie von einem Abbildungssystem konvertieren müssen, die keine Transversale Mercator-Projektion oder basische polare stereographische Projektion nicht verwendet. In diesen Fällen müssen Sie entweder auf ein anderes Skript finden, die dieses Mapping-System unterstützt, oder selbst eine Beurteilung schreiben. Ich kann die EPSG Führer empfehlen. insbesondere Führung 7 der „Koordinaten Conversions und Transformationen einschließlich Formeln“, da es eine sehr umfassende Auflistung der verschiedenen Mapping-Systeme hat, und die benötigten Algorithmen sie Systeme für andere koordinieren zu konvertieren.
Akzeptieren Eingaben von Benutzern
Wenn Sie UPS Gitterreferenzen als Eingabe erwarten, können Sie auch / upsToLatLong verwenden ups_to_lat_long diejenigen zu erkennen. Jedoch ist das normale UPS-Format in das Irish Gitterformat identisch, mit der einzigen Ausnahme, innerhalb des normalen Bereichs ist, dass die Zahlen sind in der Regel zwei Paare von mindestens 6 Ziffern, während mit Irish grid Referenzen, sie sind in der Regel nur bis zu 5-stellig . Zur Erkennung dieses Unterschieds ist der ups_to_lat_long / upsToLatLong Verfahren einen zusätzlichen MIN_LENGTH Parameter akzeptiert, die das Verfahren veranlasst, nur eine Zeichenkette als UPS grid Referenznehmen, wenn der easting und northing mindestens 800000 (eine Zahl etwas unterhalb der minimalen erwarteten Werte innerhalb des UPS Grids). Diese Prüfung muss vor der Prüfung auf Irish Grid Referenzen gemacht werden.
Versuchen Sie es hier; Eingabe einen der oben genannten Formate:
Die parse_grid_nums Methode ist hier eine Ausnahme, da es einen strict_nums Parameter hat, das Sie erlaubt, es zu zwingen, nur eine begrenzte Anzahl von Formaten zu übernehmen. Dies ist nur zum Zweck der Bestimmung, ob ein Satz von Koordinaten mit Einheiten gegeben werden, die sie am wahrscheinlichsten sein ITM Gitterkoordinaten, oder wenn die Koordinaten einfach generische Koordinaten machen, die zu einem der numerischen Raster Referenzformate anwenden könnten. Sie können wählen, um diese Funktionalität nach eigenem Ermessen verwenden.
Changelogs
Änderungen in Version 2.1
- Hinzugefügt dd_format / ddFormat.
Änderungen in Version 2.0 für PHP
Änderungen in Version 1.1 und 1.2 für PHP
- Hinzugefügt only_dm Parameter dd_to_dms.
- Hinzugefügt deny_bad_reference Parameter _ * _ grid_ref zu bekommen.