[Mapserver-DE] [kvwmap-users] Verwenden von EPSG Codes
Peter Korduan
peter.korduan at uni-rostock.de
Mon Jan 8 13:41:46 CET 2007
Hallo,
auch von mir natürlich erstmal an alle, die ich noch nicht hatte, die besten
Glückwünsche zum neuen Jahr.
Die Lösung von Frau Philipp ist natürlich sehr gut.
Nun kann es aber sein, dass noch mehr solche Daten kommen und/oder auch noch
Änderungen der Daten, die auch so verschoben sind. Dann wird es auf die
Dauer sicher zu aufwendig immer die Koordinaten händisch zu ändern.
Lösung wäre entweder ein Skript (sind es eigentlich nur Punkte oder auch
Flächen?), oder ein anderer EPSG-Code, der die verkürzten Koordinaten
richtig berücksichtigt.
Zur Transformation von Koordinaten mit falscher Additionskonstante im
Rechtswert:
Es ist eine Frage wer die Transformation vornimmt.
Wenn man einen Layer im MapFile (Ich sag mal MapFile, obwohl in kvwmap der
Layer ja nur im MapObjekt in phpMapScript erzeugt wird.) mit einem EPSG-Code
definiert wird, der nicht mit dem EPSG-Code im WebObjekt übereinstimmt,
transformiert der MapServer. => Fall 1
Wenn man einen PostGIS-Layer hat, und dann im Data Statement im MapFile
…using SRID=epsg-code angibt, der nicht mit dem für den Layer in der Tabelle
geometry_columns angegebenen EPSG-Code übereinstimmt, transformiert PostGIS.
=> Fall 2
Es ist auch gut möglich, dass erst PostGIS transformiert, von Datentabelle
zum Layer und dann noch mal UMN-MapServer beim herausgeben in sein WebObjekt
Ausgabe EPSG-Code.
Wenn man eine Shape-Datei einbindet, kommt nur Fall 1 vor.
Fall1
===
Wie transformiert wird steht in der Datei epsg im Unterverzeichnis nad des
proj-Verzeichnisses auf dem Server.
z.B.
# ETRS89 / UTM zone 33N
<25833> +proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs <>
Da müsste man die veränderte Rechtswertkonstante hinzufügen.
Man vergleiche den Eintrag von 2398:
# Pulkovo 1942(83) / Gauss-Kruger zone 4
<2398> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=4500000 +y_0=0
+ellps=kra
ss +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs <>
Da steht x_0=4500000 als Additionskonstante für den Rechtswert.
Wenn ich also 3500000 habe muss ich für 25833 auch x_0=3500000 angeben.
Nun möchte man das natürlich nicht gern ändern, denn es gibt ja vielleicht
noch Datensätze, die richtig in 25833 ohne Additionskonstant kommen. Es
bleibt wohl nichts anderes übrig, als einen eigenen zusätzlichen EPSG-Code
zu definieren. Z.B. mit dem folgenden Eintrag in die Datei epsg:
<45833> +proj=utm +zone=33 +ellps=GRS80 +units=m +x_0=3500000 +no_defs <>
Aber welchen EPSG-Code nimmt man?
Im LaiV hat man für Koordinaten, die mit führenden 33 daherkommen, also
x_0=33500000 den nicht OGC-konformen Code 35833 eingeführt, siehe:
http://www.geodaten-mv.de/geoportal/html/dienste_nutzung.html#epsgportal
EPSG:35833ETRS89, UTM(6-Grad-Streifensystem), 33. Zone, mit führender 33
(nicht OGC-konform!)
Andere hatten auch schon das Problem, z.B. die Kollegen im Land Brandenburg,
siehe
http://freegis.org/pipermail/mapserver-de/2005-January/000851.html
Dort wurde kurzerhand 25833 umdefiniert
# ETRS89 / UTM zone 33N
#<25833> +proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs <>
# new definition because Brandenburg uses another definition of EPSG 25833
<25833> +proj=tmerc +lon_0=15 +ellps=GRS80 +k=0.9996 +units=m +datum=WGS84
+x_0=3500000 <>
das kann es aus meiner Sicht auch nicht sein, denn dann müssen alle, die
EPSG-25833 richtig nutzen das in der MapDatei umdefinieren, wie auf der
Seite auch schon erkannt.
PROJECTION
# ETRS89 / UTM zone 33N = 15. Laengengrad
"proj=utm"
"zone=33"
"ellps=GRS80"
"units=m"
"no_def"
END
Nun, besser wäre es doch wenn man seine eigenen Daten richtig beschreibt und
die Standardisierung nicht ändert.
Also schlage ich vor entweder eine zusätzliche EPSG-Code-Reihe einzuführen
(etwa wie 35832, 35833 in MV nun noch 45832 und 45833) oder
im Mapfile so zu tun, als wäre es was ganz eigenes z.B.
PROJECTION
# ETRS89/UTM zone 33N = 15. Laengengrad mit x_0=3500000
"proj=utm"
"zone=33"
"ellps=GRS80"
"units=m"
"x_0=3500000"
"no_def"
END
Wohl bemerkt, diese Definition gehört in die Layersektion für Layer mit
falschen ETRS-Koordinaten (nach EPSG) und funktioniert dann nur für den
MapServer.
Fall 2
====
Eigentlich das Selbe, nur, dass die Eintragung nicht in die Datei epsg
gehört, sondern in die Tabelle spatial_ref_sys in der Spalte proj4text.
Ich poste das mal auch an Mapserver-DE, weil da auch gerade wieder mal um
SRS gerätselt wird. Geht ja auch mehr an als nur kvwmap-Nutzer.
Gruß Peter
_____
Von: kvwmap-users-bounces at lists.sourceforge.net
[mailto:kvwmap-users-bounces at lists.sourceforge.net] Im Auftrag von
Hentschel, Markus
Gesendet: Freitag, 5. Januar 2007 12:23
An: thurm at landkreis-mueritz.de; Mailinglist Kvwmap (E-Mail)
Betreff: Re: [kvwmap-users] Verwenden von EPSG Codes
Ich habe die Daten jetzt hier. es sind zwei Shapes, "NVP_blau" und
"NVP_rot". Der Rechtswert wird verkuerzt, d.h. 7-stellig angegeben. Außerdem
scheint meine "blaue" Datei nicht ganz in Ordnung zu sein, ein Zoom auf den
maximalen Extent katapultiert mich auf einen extraterrestrischen Orbit. Beim
roten Shape ist der maximale Extent _OPTISCH_ identisch mit dem des
Landkreises. Ist das bei Dir auch so, Andreas? Ich vermute, dass an den
Ausgangsdaten was nicht stimmt, weshalb der Mapserver zwar transformiert,
aber ein fehlerhaftes Ergebnis liefert.
Versuch mal über pgadmin folgendes:
"SELECT X(transform(pointfromtext('POINT(3358000
6010000)',25833),2398)),Y(transform(pointfromtext('POINT(3358000
6010000)',25833),2398))"
Die Koordinate stammt aus meiner "blauen" Datei. Du muesstest natuerlich
einen Wert aus Deinem Shape verwenden. Bei mir kommt ein voellig falscher
Wert raus, und zwar auch (und genau dergleiche), wenn ich statt epsg 25833
den epsg 3045 verwende.
Aber jetzt kommts. Probier denselben Befehl mit derselben Koordinate, nimm
aber die fuehrende 3 beim Rechtswert raus:
"SELECT X(transform(pointfromtext('POINT(358000
6010000)',25833),2398)),Y(transform(pointfromtext('POINT(358000
6010000)',25833),2398))"
dann lande ich mitten in meinem Landkreis. Das Weglassen der _KOMPLETTEN_
Kennung des Ostwerts ("33") führt zum Ergebnis. Aber wie kann man dann jetzt
den Shape transformieren? Die Angabe des EPSG-Codes im Layer reicht da wohl
nicht aus - der EPSG 25833 erwartet offensichtlich einen 6-stelligen
Ostwert.
Gruss
Markus
-----Ursprüngliche Nachricht-----
Von: thurm at landkreis-mueritz.de [SMTP:thurm at landkreis-mueritz.de]
Gesendet am: Freitag, 5. Januar 2007 11:14
An: Schmidt.H at ludwigslust.de; Hentschel, Markus
Betreff: AW: [kvwmap-users] Verwenden von EPSG Codes
Hallo Heinz, hallo Markus
erst mal vielen Dank für Eure Hilfe. Es hat aber leider noch nicht geklappt.
Sowohl der EPSG-Code 25833 als auch 3045 bringt kein Ergebnis. Bei 3045
kommt eine Fehlermeldung des mapservers, weil er die 3045 noch nicht kennt.
Bei der 25833 kommt nix. Wer weiß wo er das hin transformiert. Ich vermute
fast es ist der Code 35833. Den habe ich unter der von Heinz angegebenen
Quelle gefunden. Der ist aber nicht OGC-Konform. Mit dem kann der Mapserver
nicht umgehen. Ich habe die Codes auch schon mal ausserhalb von kvwmap in
einer externen mapserver-Umgebung getestet. Das brachte dasselbe Ergebnis.
Ich will am Montag mal Kontakt mit dem Urheber der Daten aufnehmen um
näheres zu erfahren. Mal sehen ob da was rauskommt.
Viele Grüße
Andreas
-----Ursprüngliche Nachricht-----
Von: Schmidt, Heinz [mailto:Schmidt.H at ludwigslust.de]
Gesendet: Donnerstag, 4. Januar 2007 15:12
An: Hr. Thurm, SGL Katasterbenutzung
Betreff: AW: [kvwmap-users] Verwenden von EPSG Codes
unter http://www.geodaten-mv.de/geoportal/html/dienste_nutzung.html
sind noch einige epsg-Codes aufgelistet, versuchs doch mal mit
EPSG:3045 ETRS 89, zylindrische TM-Abbildung, Zone 33
Grüße
Heinz Schmidt
Vermessungs- und Katasterbehörde
für den Landkreis Ludwigslust und die Landeshauptstadt Schwerin
Fachdienst Geoinformation und Bodenordnung
- Team GIS / Geodatenmanagement -
Tel.: (03 85) 545-27 64 und (0 38 74) 6 24-28 56
Fax: (03 85) 545-27 09 und (0 38 74) 6 24-20 62
E-Mail: HSchmidt at schwerin.de und Schmidt.H at ludwigslust.de
Internet: www.schwerin.de und www.kreis-lwl.de
> -----Ursprüngliche Nachricht-----
> Von: thurm at landkreis-mueritz.de [SMTP:thurm at landkreis-mueritz.de]
> Gesendet am: Donnerstag, 4. Januar 2007 14:12
> An: kvwmap-users at lists.sourceforge.net
> Betreff: [kvwmap-users] Verwenden von EPSG Codes
>
> Hallo alle zusammen!
>
>
>
> Erst einmal möchte ich allen ein erfolgreiches Jahr 2007 wünschen.
>
>
>
> Und um zu meinem ersten Erfolgserlebnis im Jahr 2007 zu kommen habe ich
> eine Frage an Euch:
>
>
>
> Ich möchte ein Shape-File in kvwmap einbinden. Das ist eine Datei mit
> Bodendenkmalen. Die ist ja vielleicht bei Euch auch schon aufgetaucht. Das
> Koordinatensystem wird mit ETRS89, Zone 33 (Ostwert + 3 000 000)
> angegeben. Ich habe in der Tabelle mit den EPSG-Codes den Wert 25833
> gefunden. Wenn ich den dann bei der Layerdefinition im Feld EPSG eintrage,
> müsste doch eine Transformation in mein Zielsystem (2398) stattfinden,
> oder?
>
>
>
> Ich sehe die Objekte (Polygone) in meiner Karte jedenfalls nicht. Es kommt
> aber auch keine Fehlermeldung.
>
>
>
> Wo kann denn der Fehler liegen ?
>
>
>
>
>
> Viele Grüße von der Müritz.
>
>
>
>
>
> Andreas Thurm
>
>
>
>
>
> **************************************************************************
> ************************ Der Inhalt dieser EMail ist vertraulich und nur
> fuer den angegebenen Empfaenger bestimmt. Wenn Sie diese EMail
> faelschlicherweise erhalten haben sollten, so leiten Sie sie, wenn
> moeglich, an den richtigen Adressaten weiter und informieren Sie bitte den
> Absender ueber die Aenderung der Adresse. ****** Der Inhalt dieser Mail
> wurde auf Viren geprueft. *****
> **************************************************************************
> ************************ << Datei: ATT02678.txt >> << Datei:
> ATT02679.txt >>
****************************************************************************
******************
IMPORTANT: The contents of this email and any attachments are confidential.
They are intended for the
named recipient(s) only.
If you have received this email in error, please notify the system manager
or the sender immediately and do
not disclose the contents to anyone or make copies thereof.
*** eSafe scanned this email for viruses, vandals, and malicious content.
***
****************************************************************************
******************
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: http://www.intevation.de/pipermail/mapserver-de/attachments/20070108/ef911cdf/attachment.html
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)