2012-04-12 6 views
1

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:

enter image description here

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.

Répondre

1

ok, donc le problème était vraiment stupide, j'ai confondu la longitude avec la latitude, ils auraient dû aller d'un autre côté, maintenant tout fonctionne. lol

Questions connexes