Vinzenz Mai: Ortskoordinaten und ihre Anwendung

Beitrag lesen

Nur Geduld, junger Norbert ;-)

koenntest Du Deine Vermutung bitte etwas konkretisieren ... danke ...

Es ist eine unheimlich gute Idee, seinen Quellcode zu kommentieren.

  
// Du setzt hier Skalierungsfaktoren (das Verhältnis von X/Y entspricht ungefähr  
// dem Cosinus von 49 Grad, d.h. einem plausiblen Faktor, um Längengrade in  
// Deutschland auf Kilometer umzurechnen.  
$faktX = 0.593;  
$faktY = 0.899;  
  
[...]  
// Deine Abfrage läßt vermuten, dass Du in der DB Kilometerangaben gespeichert  
// hast, die Du aus den Geokoordinaten ermittelt hast.  
$query = "SELECT geoID, ortsname, nrdKm, ostKm FROM geodata4 WHERE ".  
         "SQRT((nrdKm - $nrdC) * (nrdKm - $nrdC) + (ostKm - $ostC) * (ostKm - $ostC)) < $radius ".  
         "ORDER BY nrdKm";  
  
[...]  
  
// Dein Bild habe ich mit anderen Deutschlandkarten verglichen, ich konnte  
// keine Verzerrung feststellen. Ich hab' allerdings bei meiner kurzen  
// Stichprobe keine Angaben über die verwendete Projektion gefunden.  
  
// Auf jeden Fall skalierst Du auf Deinem Bild unterschiedlich, eine gleiche  
// Anzahl von Kilometern in Ost-West-Richtung resultiert in einer geringeren  
// Pixelanzahl als in Nord-Süd-Richtung.  
  
$psX = floor($faktX * ($ost - $offsX));  
$psY = $SRC[1] - floor($faktY * ($nrd - $offsY));  

Wenn Deine Städte überall richtig positioniert werden - schließlich passt
Erfurt ganz gut - dann wäre es ein Problem der verwendeten Projektion.

Teste daher Dein Programm mit anderen Landeshauptstädten und Grenzstädten an
der Ost- und Westgrenze. Die Ovalform kommt jedoch definitiv von Deinen Skalierungsfaktoren $faktX und $faktY.

Grüße

Vinzenz