J'essaie de créer un script simple qui prend lon/lat comme argument et place un point sur une image de mot, simple.Affichage de la position géographique sur une carte du monde d'un utilisateur
<?php
if(empty($long))$long = 56.946536;
if(empty($lat)) $lat = 24.10485;
$im = imagecreatefromjpeg("earth_310.jpg");
$red = imagecolorallocate ($im, 255,0,0);
$scale_x = imagesx($im);
$scale_y = imagesy($im);
$pt = getlocationcoords($lat, $long, $scale_x, $scale_y);
imagefilledrectangle($im,$pt["x"]-2,$pt["y"]-2,$pt["x"]+2,$pt["y"]+2,$red);
header("Content-Type: image/png");
imagepng($im);
imagedestroy($im);
function getlocationcoords($lat, $lon, $width, $height)
{
$x = (($lon + 180) * ($width/360));
$y = ((($lat * -1) + 90) * ($height/180));
return array("x"=>round($x),"y"=>round($y));
}
?>
Notez que j'utilise les coordonnées "56.946536, 24.10485". Si vous les collez dans google maps, cela afficherait "Riga, Lettonie", donc les coordonnées semblent correctes.
Maintenant, c'est le résultat du script:
complètement éteint, montre le point quelque part près de l'Afrique.
Il semble que getlocationcoords calcule les coordonnées erronées. Des suggestions pour résoudre ce problème s'il vous plaît? Je vous remercie! Noeud: Je ne peux pas utiliser Google Maps ou d'autres services, je dois le faire de cette façon.