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"と表示され、座標が正しいように見えます。
は今、このスクリプトの結果です:完全にオフ
、どこかアフリカの近くにドットを示しています。
getlocationcoordsは、座標が正しくないと計算されます。どのようにこれを修正するための任意の提案?ありがとうございました!
ノード:私はGoogleマップやその他のサービスを使用できません。この方法で行う必要があります。