Mehr

So wechseln Sie von EPSG:900913 zu EPSG:3857 in Postgresql


Ich habe den Schalter '-E 3857' beim Importieren der OSM-Daten in postgresql mit osm2psql nicht verwendet.

Ich versuche zum ersten Mal einen Kartenserver einzurichten und folge den Anweisungen von hier: https://github.com/mapserver/mapserver/wiki/RenderingOsmDataWindows#osm-prep.

Ich habe gelesen, dass epsg900913 und epsg3857 hier im Wesentlichen gleich sind: Was ist der Unterschied zwischen EPSG:900913 und EPSG:3857?.

Wie ändere/transformiere ich den Raumbezug in den osm-Tabellen (d. h. osm_line, osm_point, osm_polygon usw.) in postgresql von epsg900913 in epsg3857 mit einem SQL-Befehl?


Die Lösung habe ich hier gefunden: http://postgis.net/docs/UpdateGeometrySRID.html

--Dies ändert das Srid der Straßentabelle in 3857 von dem, was es vor UpdateGeometrySRID war (varchar table_name, varchar column_name, integer srid);

Für meine Datenbank war der Tabellenname also 'planet_osm_line' und die Spalte, die das Srid und die Geometrie enthält, ist 'way'. Die SQL-Abfrage, die ich ausgeführt habe, war:

SELECT UpdateGeometrySRID('planet_osm_line','way',3857);

Ich habe überprüft, ob es funktioniert, indem ich eine psql-Abfrage über die Befehlszeile ausgeführt habe:

psql -U postgres -d osm -c "SELECT ST_extent(way) FROM planet_osm_line"

Daten wurden zurückgegeben


Wenn Sie etwas mehr Kontrolle und etwas mehr SQL wünschen:

UPDATE TABLE foo SET geom = ST_TRANSFORM(geom, 3857);

Der Befehl aktualisiert diegeomGeometriespalte Ihrer Tabellefoomit einer Geometrie mit transformiertem SRID.


PROJEKTION¶

Es gibt Tausende von geografischen Bezugssystemen. Um Datensätze mit unterschiedlichen geografischen Bezugssystemen zu einer Karte zu kombinieren, müssen die Datensätze in das gewählte geografische Bezugssystem der Karte transformiert (projiziert) werden. Wenn Sie mehr über geografische Bezugssysteme und Kartenprojektionen im Allgemeinen erfahren möchten, sehen Sie sich die Links weiter unten an oder schauen Sie sich die Geomatik-Kurse (Geografische Informationssysteme, Kartografie, Geodäsie) an, da Projektionen ein fortgeschrittenes Thema für Anfänger sind.


Projektionen mit MapServer¶

Um Projektionen einzurichten, müssen Sie ein Projektionsobjekt für das Ausgabebild (im MAP-Objekt) und ein Projektionsobjekt für jede zu projizierende Ebene (in den LAYER-Objekten) definieren. MapServer stützt sich für Projektionen auf die PROJ-Bibliothek. Projektionsobjekte bestehen daher aus einer Reihe von PROJ-Schlüsselwörtern, die entweder direkt im Objekt angegeben oder in einer EPSG-Datei referenziert werden. Eine EPSG-Datei ist eine Nachschlagedatei, die Projektionsparameter enthält und Teil der PROJ-Bibliothek ist.

Ab MapServer 8 und wenn die Bibliothek PROJ 6 oder höher verwendet wird, wird die Verwendung von EPSG-Codes, sofern verfügbar, anstelle der Inline-Projektionsparameter empfohlen, um von einer genaueren Koordinatenreprojektion zu profitieren.

Die folgenden beiden Beispiele definieren beide dieselbe Projektion (UTM-Zone 15, NAD83), verwenden jedoch 2 verschiedene Methoden:

Beispiel 1: Parameter für die Inline-Projektion

Für eine Liste aller möglichen PROJ-Projektionsparameter ist die offizielle PROJ-Site am besten (https://proj.org), jedoch enthält das alte Wiki eine vollständige Liste der PROJ-Parameter.

Beispiel 2: Verwendung der EPSG-Projektion

Dies bezieht sich auf eine EPSG-Lookup-Datei, die den Code „26915“ mit den vollständigen Projektionsparametern enthält. Bei „epsg“ muss in diesem Fall die Groß-/Kleinschreibung beachtet werden, da es sich auf einen Dateinamen bezieht. Wenn in Ihrem Dateisystem die Groß-/Kleinschreibung beachtet wird, muss dies in Kleinbuchstaben erfolgen, sonst beschwert sich MapServer (eigentlich PROJ) darüber, dass diese Datei nicht gefunden werden kann.

Weitere Informationen zu diesem Koordinatensystem finden Sie unter https://epsg.io/26915.

Die nächsten beiden Beispiele zeigen beide, wie man möglicherweise nicht projizierte Breite/Länge („geographisch“) definiert:

Beispiel 3: Parameter für die Inline-Projektion

Beispiel 4: Verwendung der epsg-Projektion


OpenLayer. Projektion

Methoden für Koordinatentransformationen zwischen Koordinatensystemen. OpenLayers wird standardmäßig mit der Fähigkeit geliefert, Koordinaten zwischen geografischen (EPSG:4326) und Web- oder sphärischen Mercator- (EPSG:900913 et al.) Koordinatenreferenzsystemen zu transformieren. Einzelheiten zur Verwendung finden Sie in der Transformationsmethode.

Zusätzliche Transformationen können mithilfe der Bibliothek proj4js hinzugefügt werden. Wenn die Bibliothek proj4js enthalten ist, funktioniert die Transformationsmethode zwischen zwei beliebigen Koordinatenreferenzsystemen mit proj4js-Definitionen.

Wenn die Bibliothek proj4js nicht enthalten ist oder Sie Transformationen zwischen beliebigen Koordinatenreferenzsystemen zulassen möchten, verwenden Sie die Methode addTransform, um eine benutzerdefinierte Transformationsmethode zu registrieren.

OpenLayer. ProjektionMethoden für Koordinatentransformationen zwischen Koordinatensystemen.
Konstrukteur
OpenLayer. ProjektionDiese Klasse bietet mehrere Methoden für die Interaktion mit einem umschlossenen pro4js-Projektionsobjekt.
Funktionen und Eigenschaften
getCodeRufen Sie den String-SRS-Code ab.
getUnitsHolen Sie sich die Einheitenzeichenfolge für die Projektion – gibt null zurück, wenn proj4js nicht verfügbar ist.
Standardeinstellungen Voreinstellungen für die OpenLayers bekannten SRS-Codes (derzeit EPSG:4326, CRS:84, urn:ogc:def:crs:EPSG:6.6:4326, EPSG:900913, EPSG:3857, EPSG:102113, EPSG:102100 und OSGEO: 41001).
addTransformLegen Sie eine benutzerdefinierte Transformationsmethode zwischen zwei Projektionen fest.
verwandelnTransformieren einer Punktkoordinate von einer Projektion in eine andere.
nullTransform

Konstrukteur

OpenLayer. Projektion

Diese Klasse bietet mehrere Methoden für die Interaktion mit einem umschlossenen pro4js-Projektionsobjekt.


Kommentar

Hallo,
Ich meine, dass die Fliesen komplett durcheinander sind. im zweiten Screenshot sieht man leicht über dem Zentrum LIRE und LIRA, die Flughäfen von Rom. Die Fliesen liegen tatsächlich mitten im Atlantik und scheinen auch nicht einheitlich zu sein (harte Kanten). Wenn ich in diesen speziellen Bereich hineinzoome, ändern sich auch die Kacheln leicht, z.B. LIRE springt. Die ersten Screenshots zeigen auch, dass alles eindeutig fehl am Platz ist.
Diese Kacheln werden geladen, indem die Kachel-URL direkt verwendet wird (ich kenne ihren nicht sehr guten Stil).


Mit WMS und einer modifizierten Version von WMSTiledImageLayer (ich muss den SRS-Parameter in der URL manuell auf EPSG:3857 setzen) sehe ich, dass nur schwarze (transparente) Kacheln geladen werden, aber nie Inhalte auf der Karte. Wenn ich die Standardklasse WMSTiledImageLayer verwendet habe, erhalte ich einen Serverfehler (sie akzeptiert das bereitgestellte Standard-SRS nicht).


So prüfen Sie, ob ein Koordinatensystem einen EPSG-Code hat

Durch:

Beim Datenaustausch mit ArcGIS wird empfohlen, ein Koordinatensystem mit einem EPSG-Code zu verwenden.

Wenn eine Zeichnung ein Koordinatensystem ohne EPSG-Code verwendet, wird den Daten möglicherweise beim Zurückspeichern in ArcGIS ein kleiner XY-Versatz hinzugefügt, wenn die Daten außerhalb des nutzbaren Bereichs des Koordinatensystems liegen.

Sie können den Befehl MAPCSASSIGN verwenden, um zu überprüfen, ob ein Koordinatensystem einen EPSG-Code hat, und um den nützlichen Bereich eines Koordinatensystems zu überprüfen.


JNDI-Implementierungen werden von Webanwendungscontainern wie Apache Tomcat bereitgestellt. Wenn Apache SIS in einem JavaEE-Container verwendet wird, kann die Datenquelle wie folgt konfiguriert werden:

Stellen Sie den JDBC-Treiber dem Web-Container und seinen Anwendungen zur Verfügung. Auf Tomcat wird dies erreicht, indem die JAR-Dateien des Treibers in das Verzeichnis $CATALINA_HOME/lib installiert werden.

Wenn Sie Derby verwenden, kopieren Sie derby.war in das Verzeichnis $CATALINA_HOME/webapps und geben Sie das Verzeichnis an, in dem sich die Derby-Datenbanken befinden (überspringen Sie diesen Schritt, wenn eine andere Datenbank verwendet wird):

  1. Konfigurieren Sie die Datenquelle in $CATALINA_HOME/conf/context.xml oder in der Datei META-INF/context.xml der Anwendung (ändern Sie die Attributwerte nach Bedarf für den ausgewählten JDBC-Treiber):
  1. Wenn Sie Derby verwenden, überprüfen Sie dies auf der Seite localhost:8080/derby/derbynet (überspringen Sie diesen Schritt, wenn eine andere Datenbank verwendet wird).

Erweiterte Konfigurationen sind möglich. Tomcat kann beispielsweise eine benutzerdefinierte Java-Methode aufrufen, anstatt die Datenquelle aus der Datei context.xml abzurufen.

Copyright © 2013-2021 The Apache Software Foundation, lizenziert unter der Apache-Lizenz, Version 2.0.
Apache SIS, Apache und das Apache-Federlogo sind Marken der Apache Software Foundation.


Einstellen und Ändern von Projektionen in ArcGIS Pro

Projektionen können auf einer ArcGIS Pro-Karte geändert werden, indem Sie mit der rechten Maustaste auf den Layer im Inhalt Fenster und Auswahl Eigenschaften -> Koordinatensysteme.

Das Dialogfeld zeigt Ihnen die aktuelle Projektion und ermöglicht Ihnen, eine neue Projektion zu suchen oder zu durchsuchen.

Im Projektionsdialog stehen Ihnen zwei Sätze von Koordinatensystemen zur Auswahl:

  • Geographische Koordinatensysteme geben an, wo sich Merkmale auf der Oberfläche des Planeten befinden.
  • Projizierte Koordinatensysteme geben an, wo sich Features auf Karten befinden.

Das folgende Video zeigt, wie Sie eine Weltkarte von ihrer bestehenden Projektion (Web Mercator - EPSG 3857) in die übliche Robinson-Projektion (EPSG 54030) ändern. Da verschiedene Projektionen oft ähnliche Namen haben, hilft Ihnen dies, diese spezifische Projektion zu finden, wenn Sie eine bestimmte Projektion wünschen und eine WKID-Nummer zum Suchen haben. In diesem Fall verwenden wir 54030 für die Robinson-Projektion.

Ihr Browser unterstützt das Video-Tag nicht. Ändern einer Projektion in ArcGIS Pro


ANMERKUNGEN

Enthält das Eingabekoordinatensystem einen Datumsnamen, aber keine Transformationsparameter und ist mehr als ein geeigneter Parametersatz verfügbar (entsprechend den Dateien datum.table und datumtransform.table in $GISBASE/etc/proj), g.proj überprüft den Wert der datumtrans Option und gehen Sie wie folgt vor:
-1: Listen Sie verfügbare Parametersätze in einem GUI-parsablen (aber auch für Menschen lesbaren) Format auf und beenden Sie.
0 (Standard): Fahren Sie fort, ohne Parameter anzugeben - wenn sie beim Erstellen eines Standorts verwendet werden, verwenden andere GRASS-Module bei Bedarf in Zukunft die "Standard"-Parameter (wahrscheinlich nicht optimal) für dieses Datum.
Jede andere Zahl kleiner oder gleich der Anzahl der verfügbaren Parametersätze für dieses Datum: Wählen Sie diesen Parametersatz aus und fügen Sie ihn der Koordinatensystembeschreibung hinzu.
Wenn die -t Flag angegeben ist, versucht das Modul, die Datumstransformationsparameter mit einer der beiden oben genannten Methoden zu ändern selbst wenn im Eingabekoordinatensystem ist bereits ein gültiger Parametersatz angegeben. Dies kann nützlich sein, um die Bezugsinformationen für eine vorhandene Position zu ändern.

Die Ausgabe basiert einfach auf den eingegebenen Projektionsinformationen. g.proj tut nicht versuchen zu verifizieren, dass das so beschriebene Koordinatensystem mit einem existierenden System übereinstimmt, das in der Welt verwendet wird. Dies bedeutet insbesondere, dass die WKT-Ausgabe keine EPSG-Behördencodes enthält.

Das WKT-Format zeigt die falschen Ost- und Nordwerte in der projizierten Einheit (z. B. Meter, Fuß), aber im PROJ-Format sollte es immer in Metern angegeben werden.

Die maximale Größe der WKT- oder PROJ.4-Projektionsbeschreibungen ist auf 8000 Byte begrenzt.


So wechseln Sie von EPSG:900913 zu EPSG:3857 in Postgresql - Geographic Information Systems

Einrichten einer Fedora 21 QGIS Workstation

Ich bin schon lange ein Ubuntu-Benutzer (ich benutze es tatsächlich seit Ubuntu 4.10 'Warty Warthog') - der ersten offiziellen Veröffentlichung. Mit dem Aufkommen von Ubuntu endete mein Distributions-Hopping auf der Suche nach der 'perfekten Linux-Distribution'.

So erstellen und debuggen Sie QGIS mit QtCreator

So baue ich QGIS mit QtCreator unter Ubuntu 14.04

Gary Sherman gewinnt den Sol Katz Award

In diesem Jahr gewann Gary Sherman den jährlichen Sol Katz Award. Um die OSGEO-Seite über die Auszeichnung zu zitieren:

WMS Legend Plugin für Leaflet

Dieses Wochenende habe ich unsere Kartengalerie auf http://maps.kartoza.com aktualisiert und wollte WMS-Legenden in meinen Karten haben. Die Karten werden hauptsächlich mit dem QGIS-Server generiert, der auch eine schön aussehende Grafik für seine getLegendGraphic-Anfragen erzeugt. Da Leaflet keine Legendensteuerung von Haus aus zu haben scheint, habe ich ein kleines Leaflet-Plugin geschrieben, um dies zu tun.

Nodeenv: So installieren Sie nodejs in einer Python-Virtualenv

Hier bei Kartoza ist die Arbeit in virtuellen Python-Umgebungen unser Standardmodus Operandi, wenn Sie mit einer Python-Entwicklung beginnen. Seit einiger Zeit genießen wir yuglify, tilemill und andere node.js-basierte Anwendungen als Teil unseres Workflows, und schon früh in meiner Nutzung dieser Technologien habe ich nodeenv entdeckt - hauptsächlich, weil ich von verschiedenen Node-Anwendungen auf den Arsch gebissen wurde derselbe Host, der verschiedene Versionen von node.js erwartet. Nodeenv bietet eine Python Virtualenv-ähnliche Umgebung für das Sandboxing Ihrer Knotenanwendungen, sodass jede unter ihrer eigenen diskreten Version von node.js ausgeführt werden kann. Es funktioniert sehr ähnlich wie python virtualenv und tatsächlich erfordert es virtualenv, so dass es für Pythonistas sehr gut geeignet ist! In diesem Artikel dokumentiere ich die Schritte, die erforderlich sind, um den Knoten in einer solchen Umgebung zum Laufen zu bringen.

Spielen mit fremden Daten-Wrappern in PostgreSQL

Vor kurzem wollte ich den PostgreSQL Foreign Data Wrapper (FDW) ausprobieren, weil ich Zugriff auf Daten brauchte, die sich in MySQL-Tabellen befanden. Der Hauptgrund, warum ich herumspielen musste, war, meine Daten einer Reihe von PostgreSQL-Funktionen auszusetzen, die besser und neuer als MySQL sind. Ich musste auch MySQL-Daten für Ansichten und Lookups und datengesteuertes Styling für einige Geoserver-Layer verwenden. FDWs ermöglichen den Fernzugriff auf Tabellen oder Abfragen aus verschiedenen externen Datenbanken oder Dateistrukturen von Drittanbietern.

MyCOE GCE TechCamp

Die AAG (American Association of Geographers) und das US-Außenministerium veranstalteten über EIS Africa vom 13. bis 23. Juli 2014 die Südafrika-Ausgabe des GCE MyCOE Youth TechCamps. Kartoza und seine ehemalige Inkarnation Afrispatial wurden an Bord geholt, um die technischen und pädagogische Aspekte des TechCamps. Das TechCamp war ein zehntägiger kultureller Austausch gepaart mit praktischem GIS-Lernen rund um das Thema Klimawandel. Das Hauptziel des Programms war es, die Rolle der Geographie bei den Studenten zu stimulieren und zu lehren, wie neue Technologien die Nutzung der Geographie in der realen Welt zur Lösung von Problemen vorantreiben.

Das exzellente Team des Geographie-Departments der University of Pretoria veranstaltete das TechCamp (siehe ihren Beitrag), während wir alle im Altelekker Youth Camp in Irene übernachteten. 37 15-17-jährige Gymnasiasten besuchten GIS-Unterricht, lernten über den Klimawandel, hörten Gastrednern wie Colleen Vogel und Roger Ellis zu, machten Exkursionen zum Freedom Park, Maropeng, Sterkfontein Caves und Dinokeng und Hatten viel Spaß. Die Studierenden wurden in den vergangenen sechs Monaten in einem kompetitiven Verfahren ausgewählt: zehn aus den USA und der Rest aus Südafrika. Die Schüler aus beiden Ländern kamen aus einer Reihe von Hintergründen: private und öffentliche Schulen, ländliche und städtische, benachteiligte und benachteiligte. Einige waren mit Computer vertraut und hatten sogar GIS-Preise gewonnen, während andere kaum einen Computer berührt hatten. Das Hauptziel der Integration dieser Studierenden war es, einen Kompetenztransfer sowie einen kulturellen Austausch zu initiieren.

Schauplatz der meisten Vorlesungen war die Universität von Pretoria, die sorgfältig ausgewählt wurde, um die Teilnehmer dazu anzuregen, die Universität zu schätzen und ihnen bewusst zu machen, dass Geographie als Beruf angesehen werden kann. Das Klimawandelprojekt konzentrierte sich auf wasserbezogene Themen rund um den Centurion Lake: Verschmutzung, Planung, Dolomit und Dolinen. Wir haben Datensätze für Gauteng vorbereitet, darunter Satellitenbilder, ein DEM, OpenStreetMap-Layer, Tshwane Metro-Layer, Geologie und andere öffentliche Daten. Diese wurden aus einer zentralen PostGIS-Datenbank und aus Spatialite-Datenbanken auf USB-Laufwerken bereitgestellt. Die Studierenden erlernten die Grundlagen von GIS bis hin zur Digitalisierung, grundlegenden Analyse und Kartenerstellung mit QGIS. Sie alle nahmen die Daten und die QGIS-Software mit nach Hause, um sie zu teilen und zu verteilen.

Am Ende des TechCamps waren die Computer- und GIS-Kenntnisse der Studenten phänomenal. Sie kamen am letzten Tag im „TechTorrent“ zum Einsatz, wo jedes von acht Teams die Forschungsprojekte vorstellte, die sie die ganze Woche über entwickelt hatten. Ihre Präsentationen verwendeten Tools wie Prezi und ESRI Storymaps und alle enthaltenen Karten, die in QGIS erstellt wurden.

mit Beiträgen von Admire Nyakudya und Bridget Fleming

So wandeln Sie mit QGIS schnell einen Begrenzungsrahmen von einem CRS in einen anderen um

Heute musste ich eine Bounding Box für ein Tilemill-Projekt konvertieren, das ich als Kachelebene in QGIS einbringen möchte (mehr dazu in einem zukünftigen Beitrag, wenn ich es zum Laufen bringe. ). Ich musste einen Begrenzungsrahmen von EPSG:4326 ('Geographic') Koordinaten in EPSG:3857 (Spherical Mercator) konvertieren. Glücklicherweise ist es ein ziemlich trivialer Prozess, wenn es Ihnen nichts ausmacht, ein paar Python-Zeilen in die QGIS-Python-Konsole zu schreiben:

Ausführen von QGIS Desktop in einem Docker-Container

Ich liebe es, Docker zu verwenden - ich habe Docker verfolgt und gelernt, seit es kurz nach seiner Ankündigung angekündigt wurde, und glaube, dass es ein echter Game Changer sein wird. Ich habe mit den verschiedenen Dingen herumgespielt, die man in einem Docker-Container machen kann, und natürlich ist es nur natürlich, dass ein "QGIS-Typ" wie ich anfängt, über die Verwendung von Docker mit QGIS nachzudenken. Ein QGIS-Server in einem Docker-Container scheint eine natürliche Lösung zu sein, aber wie wäre es mit QGIS Desktop? Letzte Nacht saßen Richard Duivenvoorde und ich herum und tranken Tee und wir dachten, wir versuchen es schnell - tatsächlich dauerte es nur etwa eine halbe Stunde, bis etwas funktionierte.