<?php
/// CONFIG
$beginn_west = 9.53333333; // anfang des grad-bereichs im westen (westlichster punkt)
$ende_ost = 17.0666666; // ende des grad-bereichs im osten (östlichster punkt)
$beginn_nord = 49.01666666; // anfang des grad-bereichs im süden (südlichster punkt)
$ende_sued = 46.3666666; // ende des grad-bereichs im norden (nördlichster punkt)
$bild = 'map.jpg'; // karte! muss EXAKT zugeschnitten sein! sonst funktionierts nicht!
# bild laden & größe ermitteln
$map = imagecreatefromjpeg($bild);
$size = getimagesize($bild);
$img_breite = $size[0];
$img_hoehe = $size[1];
unset($size);
$input_laenge = $_POST['l']; // angegebene längenkoordinate (=> entspicht breite im bild)
$input_breite = $_POST['b']; //47.81666666; // angegebene breitenkoordinate (=> entspricht höhe im bild)
$input_caption = substr($_POST['cap'],0,15); // beschriftung
# umrechnungszahlen berechnen
$umrechnung_laenge = $img_breite / ($ende_ost - $beginn_west);
$umrechnung_breite = $img_hoehe / ($ende_sued - $beginn_nord);
# grade auf null zurückrechnen
$null_laenge = $input_laenge - $beginn_west;
$null_breite = $input_breite - $beginn_nord;
# pixel berechnen
$pixel_x = $null_laenge * $umrechnung_laenge;
$pixel_y = $null_breite * $umrechnung_breite;
////////////////////////////////////////////////
# bild laden
$blau = imagecolorallocate($map,0,0,255);
imagefilledellipse($map,$pixel_x,$pixel_y,8,8,$blau);
imagestring($map,2,$pixel_x+12,$pixel_y-6,$input_caption,$blau);
header('Content-Type: image/jpeg');
imagejpeg($map,'',100);
imagedestroy($map);
?>