2012-04-12 126 views
1

我試圖製作一個簡單的腳本,它將lon/lat作爲參數,並將一個點放在單詞映射圖像上,很簡單。在用戶的世界地圖上顯示地理位置

<?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)); 
} 
?> 

請注意,我用下面的座標 「56.946536,24.10485」。如果你將它們粘貼到谷歌地圖中,​​它會顯示「拉脫維亞里加」,所以座標看起來是正確的。

現在,這是腳本的結果:

enter image description here

完全脫落,表明非洲附近某處點。

看來,getlocationcoords計算座標錯誤。任何建議如何解決這個問題?謝謝!

節點:我不能使用谷歌地圖或任何其他服務,我必須這樣做。

回答

1

好的,所以問題真的很愚蠢,我把經度和緯度混合在一起,他們應該有其他的方式,現在一切正常。大聲笑