2016-07-04 17 views
0

Ich habe ein extravagantes lokales räumliches Bezugssystem, und ich habe viele Daten in einem alten Legacy-System gespeichert. Jetzt möchte ich diese Daten in meine Datenbank importieren. Auf der Clientseite verwende ich JavaScriptOpenLayers 3 Bibliothek (wenn es darauf ankommt), auf der Serverseite I mit srid zur Speicherung von Geometriedaten verwendet bin 3857, so meine Tabellen mit Schichtdaten haben solche Einschränkungen:Wie erstellt man eine neue SRID in PostgreSQL/Postgis?

CONSTRAINT enforce_dims_geom_layer_1_ CHECK (st_ndims(geom) = 2), 
CONSTRAINT enforce_srid_geom_layer_1_ CHECK (st_srid(geom) = 3857) 

Also, wenn ich diese Altdaten haben, mit einigen Koordinaten in einem lokalen Referenzsystem, wie kann ich Ansatz, dieses Problem eine Formel zu erhalten wie:

+proj=longlat +ellps=bessel +towgs84=595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408 +no_defs 
+0

Wenn Sie "lokales Bezugssystem" sagen, ist das ein tatsächliches geodätisches Koordinatensystem (d. H. Gebunden an Long/Lat-Koordinaten mit einem bestimmten Meridian und einer Kugel) oder nur Koordinaten, die an einen lokalen Ursprung gebunden sind? Können Sie Ihre Frage bearbeiten, um Informationen zu Ihrem lokalen Referenzsystem zu erhalten? – Patrick

+0

@Patrick. Es ist kein aktuelles/standardisiertes Koordinatensystem. Es ist ein System, das an einen lokalen Ursprung gebunden ist. Das einzige, was ich sicher weiß, ist, dass es für dieses System keinen espg-Code gibt, er existiert nicht in spatial_ref_sys, also muss ich ihn selbst erstellen. Was ich habe, sind nur Rohdaten mit einigen Attributen, einschließlich X- und Y-Koordinaten. Ich kann keine Informationen über dieses System geben, weil ich nichts weiß. Welche Zutaten sollte ich wissen und welche Fragen sollte ich zu diesem Bezugssystem stellen, um auf Ihre Frage antworten zu können? – Jacobian

+0

Sorry, ich sagte, es ist kein tatsächliches Koordinatensystem. Aber in der Tat ist es, weil es in meiner Nähe verwendet wird. Obwohl, ich weiß nicht viel über dieses System. Ich weiß nicht einmal, was ich darüber wissen soll, um eine Formel wie die in der Tabelle "spatial_ref_sys" erstellen zu können. – Jacobian

Antwort

0

Werfen Sie einen Blick auf die public.spatial_ref_sys Tisch. Dort sind die SRIDs definiert und Sie können Ihre neue SRID eingeben. Die Spalte proj4text enthält die Formeln.

+0

Nun, der Haken ist, dass ich über diese Tabelle spatial_ref_sys weiß. Meine Frage geht nicht darum, wie man in diese Tabelle ein paar abstrakte Srids einfügt, sondern wie man die reale Formel für ein neues, echtes Srid auf der Basis von alten Daten, die ich habe, herausfinden kann. Also, das ganze Problem ist in der Formel. Wie kann ich etwas wie '+ proj = longlat + ellps = bessel ...' aus meinen Daten erhalten, die sich im lokalen räumlichen Bezugssystem befinden? – Jacobian

+0

Wenn Sie Ihre Daten in SRID 3857 gespeichert haben, ist es nicht nur 'SELECT proj4text FROM spatial_ref_sys WHERE srid = 3857'? also in diesem Fall erhalten Sie '+ proj = merc + a = 6378137 + b = 6378137 + lat_ts = 0,0 + lon_0 = 0,0 + x_0 = 0,0 + y_0 = 0 + k = 1,0 + Einheiten = m + Nadgrids = @ null + wktext + no_defs' – mxlse

+0

Nein. Wie ich schon sagte "Ich habe ein extravagantes lokales räumliches Bezugssystem". Also, es ist nicht in SRID 3857. Aber das ist, was ich erreichen will - um es in SRID 3857 konvertieren zu können. Um dies zu tun, sollte ich einige Formeln aufbauen, wie viele von denen, die in 'proj4text' Spalte in' gespeichert sind spatial_ref_sys' Tabelle.Und darum geht es in meiner Frage. – Jacobian