2012-04-12 5 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, это будет показывать «Рига, Латвия», поэтому координаты кажутся правильными.

Теперь это результат сценария:

enter image description here

полностью выключен, показывает точку где-то вблизи Африки.

Похоже, что getlocationcoords рассчитывает неправильные координаты. Любые предложения, как исправить это, пожалуйста? Спасибо!

Узел: Я не могу использовать карты Google или любые другие услуги, я должен сделать это таким образом.

ответ

1

ОК, так что проблема была действительно глупо, я перепутал долготу с широтой, они должны были пойти по-другому, теперь все работает. lol

Смежные вопросы