Re: [Talk-de] Wie Mercator nach EPSG:4326 wandeln in Perl?

2012-01-04 Diskussionsfäden Manuel Reimer

Manuel Reimer wrote:

Da der Fehler bei größeren Zoomstufen zu groß wird, habe ich den Layer so
konfiguriert, dass man mindestens bis Zoom 12 reingezoomt haben muss. Ich hoffe
einfach, dass es genau genug ist, dass ich letztlich auch "getFeatureInfo"
nutzen kann. Wäre nämlich doof, wenn man auf der Karte "daneben klicken" muss um
die gewünschte Info zu bekommen.


Mal ein Nachtrag dazu: Ich habe "getFeatureInfo" jetzt mit eingebaut (läuft auch 
durch meinen Proxy und wird somit genau so umgerechnet) und ich bin mit dem 
Ergebnis sehr zufrieden. Man kann dahin klicken, wo das Element, zu dem man 
Infos will, sich befindet und der WMS gibt korrekte Infos zurück.


Da es mit der einfachen Lösung so gut funktioniert, werde ich mir jegliche 
Versuche in Richtung "Reprojektion" erstmal schenken.


Gruß

Manuel


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Wie Mercator nach EPSG:4326 wandeln in Perl?

2012-01-04 Diskussionsfäden Holger

Hallo,

da auch JOSM diesen "Fehler" macht hatte ich mir mal Kacheln gebastelt, 
bei denen auf der einen Seite die richtigen Koordinaten, und auf der 
anderen Seite die verzerrten Koordinaten als horizontale Linien 
gezeichnet waren. Ergebnis: Bei üblichen Kachelgrößen muss man schon 
extrem weit rauszoomen (ca. Bundesland auf einer Kachel), bis es eine 
Rolle spielt. Zum mappen also eher unproblematisch, da man bei diesem 
Zoom eh keine Details mehr erkennen kann. Wenn Bundesländer oder Staaten 
angeklickt werden sollen siehe dies schon anders aus.


Holger


Am 03.01.2012 17:50, schrieb Frederik Ramm:

Du weisst aber schon, dass Du mit groesser werdendem Abstand vom
Aequator damit immer verzerrtere Bilder bekommst - die Oberkante und
Unterkante des Bildes sind da, wo sie hingehoeren, aber die Bildmitte
kann ein ganzes Stueck hoeher oder tiefer liegen (also das, was bei Dir
genau in der Mitte zwischen Ober- und Unterkante liegt, muesste
eigentlich 10% weiter oben oder unten abgebildet sein).



___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Wie Mercator nach EPSG:4326 wandeln in Perl?

2012-01-03 Diskussionsfäden Manuel Reimer

Frederik Ramm wrote:

Du weisst aber schon, dass Du mit groesser werdendem Abstand vom Aequator damit
immer verzerrtere Bilder bekommst - die Oberkante und Unterkante des Bildes sind
da, wo sie hingehoeren, aber die Bildmitte kann ein ganzes Stueck hoeher oder
tiefer liegen (also das, was bei Dir genau in der Mitte zwischen Ober- und
Unterkante liegt, muesste eigentlich 10% weiter oben oder unten abgebildet 
sein).

Wenn Du weit reingezoomt bist, ist der Fehler natuerlich absolut betrachtet
nicht so gross. Aber es ist halt keine lineare Transformation, und deswegen
reicht ein Umprojizieren der Bounding Box nicht aus.


Es geht mir bei meiner Karte nur um Deutschland. Zudem holt Openlayers den WMS 
auch als "Tiles" ab, was den Fehler etwas reduziert, weil die Flächen kleiner 
werden.


Da der Fehler bei größeren Zoomstufen zu groß wird, habe ich den Layer so 
konfiguriert, dass man mindestens bis Zoom 12 reingezoomt haben muss. Ich hoffe 
einfach, dass es genau genug ist, dass ich letztlich auch "getFeatureInfo" 
nutzen kann. Wäre nämlich doof, wenn man auf der Karte "daneben klicken" muss um 
die gewünschte Info zu bekommen.


Kennt denn jemand eine Reprojektions-Lösung, die einfach als CGI auf einem 
Server laufen kann? Muss aber statisch baubar sein. Problem ist dabei, dass der 
WMS nur PNG-Bilder liefert. Es müsste also echte Bild-Manipulation gemacht werden.


Gruß

Manuel


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Wie Mercator nach EPSG:4326 wandeln in Perl?

2012-01-03 Diskussionsfäden Frederik Ramm

Hallo,

On 01/03/2012 04:38 PM, Manuel Reimer wrote:

Habe das in meinen WMS-Proxy eingebaut. Der gewünschte WMS-Server kennt
kein EPSG:900913, also wandle ich die BBOX, die von Openlayers kommt,
direkt im Proxy nach EPSG:4326 und frage dann damit am WMS an. Das
Ergebnis ist garnicht mal so schlecht.


Du weisst aber schon, dass Du mit groesser werdendem Abstand vom 
Aequator damit immer verzerrtere Bilder bekommst - die Oberkante und 
Unterkante des Bildes sind da, wo sie hingehoeren, aber die Bildmitte 
kann ein ganzes Stueck hoeher oder tiefer liegen (also das, was bei Dir 
genau in der Mitte zwischen Ober- und Unterkante liegt, muesste 
eigentlich 10% weiter oben oder unten abgebildet sein).


Wenn Du weit reingezoomt bist, ist der Fehler natuerlich absolut 
betrachtet nicht so gross. Aber es ist halt keine lineare 
Transformation, und deswegen reicht ein Umprojizieren der Bounding Box 
nicht aus.


Bye
Frederik

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Wie Mercator nach EPSG:4326 wandeln in Perl?

2012-01-03 Diskussionsfäden Bartosz Fabianowski

Der gewünschte WMS-Server kennt kein EPSG:900913


Vielleicht kann er ja EPSG:3857? 900913 ist gar kein echter EPSG-Code 
sondern steht für "google" und wurde damals von OpenLayers als 
Platzhalter eingeführt. Mittlerweile gibt es einen offiziellen Code, 
EPSG:3857 eben.


Gruß,
- Bartosz

___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Wie Mercator nach EPSG:4326 wandeln in Perl?

2012-01-03 Diskussionsfäden Manuel Reimer

Holger wrote:

ich kann das hier bieten:
[...]


Klappt ganz wunderbar und ist nebenbei auch die kürzeste Formel, die ich bisher 
gesehen habe. Vielen Dank dafür!


Habe das in meinen WMS-Proxy eingebaut. Der gewünschte WMS-Server kennt kein 
EPSG:900913, also wandle ich die BBOX, die von Openlayers kommt, direkt im Proxy 
nach EPSG:4326 und frage dann damit am WMS an. Das Ergebnis ist garnicht mal so 
schlecht.


Gruß

Manuel


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


Re: [Talk-de] Wie Mercator nach EPSG:4326 wandeln in Perl?

2012-01-01 Diskussionsfäden Holger

Hallo Manuel,

ich kann das hier bieten:

use Math::Trig;

### Earth radius in meters.  This must be 6378137 for the calculation
### of Spherical Mercator coordinates.
my $earthRadius = 6378137.0;

### Convert Spherical Mercator coordinates into latitude and longitude.
sub merc2latlon {
  my ($xMerc, $yMerc) = @_;
  my ($lat, $lon);
  $lon = rad2deg($xMerc / $earthRadius);
  $lat = rad2deg(atan(sinh($yMerc / $earthRadius)));
  return($lat, $lon);
}

Gruß
Holger


Am 01.01.2012 18:07, schrieb Manuel Reimer:

Hallo,

für den Längengrad habe ich die Formel schon selber umgestellt:

lon = (merclon * 180) / 20037508.34

Aber ich bekomme es für den Breitengrad nicht hin...

Ursprungsformel, die genau das Gegenteil macht, was ich will (Aber noch
Javascript):

function Lat2Merc(lat) {
var PI = 3.14159265358979323846;
lat = Math.log(Math.tan( (90 + lat) * PI / 360)) / (PI / 180);
return 20037508.34 * lat / 180;
}

Ich brauche die Umgekehrfunktion. Allerdings nicht in Javascript sondern
in Perl.

Hat da jemand etwas auf die Schnelle bereit?

Gruß

Manuel

P.S. Ich kann auf dem Server *keine* Perl-Module installieren!




___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de


[Talk-de] Wie Mercator nach EPSG:4326 wandeln in Perl?

2012-01-01 Diskussionsfäden Manuel Reimer

Hallo,

für den Längengrad habe ich die Formel schon selber umgestellt:

lon = (merclon * 180) / 20037508.34

Aber ich bekomme es für den Breitengrad nicht hin...

Ursprungsformel, die genau das Gegenteil macht, was ich will (Aber noch 
Javascript):

function Lat2Merc(lat) {
var PI = 3.14159265358979323846;
lat = Math.log(Math.tan( (90 + lat) * PI / 360)) / (PI / 180);
return 20037508.34 * lat / 180;
}

Ich brauche die Umgekehrfunktion. Allerdings nicht in Javascript sondern in 
Perl.

Hat da jemand etwas auf die Schnelle bereit?

Gruß

Manuel

P.S. Ich kann auf dem Server *keine* Perl-Module installieren!


___
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de