[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://freegis.org/pipermail/mapserver-de/attachments/20070108/ef911cdf/attachment-0001.html