2012-04-12 23 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」を使用しています。それらをGoogleマップに貼り付けると、 "Riga、Latvia"と表示され、座標が正しいように見えます。

は今、このスクリプトの結果です:完全にオフ

enter image description here

、どこかアフリカの近くにドットを示しています。

getlocationcoordsは、座標が正しくないと計算されます。どのようにこれを修正するための任意の提案?ありがとうございました!

ノード:私はGoogleマップやその他のサービスを使用できません。この方法で行う必要があります。

答えて

1

ok、問題は本当に馬鹿だったので、私は経度を緯度と混ぜ合わせて、別の方法で行っていたはずです。笑