Tam doğruluk için, spherical trigonometry spherical geometry bölümünü kullanmanız gerekir. Eğer kürenin sadece küçük bir parça ile ilgileniyor beri tek bir şeyi unutmayın Ancak, Öklid geometrisi yapacağız.
Enlem arttıkça, boylam çizgileri birbirine yakın olsun. Örneğin, Kuzey Kutbu yakınlarında, enlem çizgileri neredeyse dokunaklı vardır. Yani cos (enlem) bir faktör tarafından mulitlying onları azalan, sizin enlem farklılıkları durum. İşte size uygulaması için yeterince iyi doğruluk verecektir.
$n = 60.406505416667;
$s = 60.400570555556;
$e = 5.3351572222222;
$w = 5.3190577777778;
$rotn = 3.7088732260919;
$a = ($e + $w) / 2.0;
$b = ($n + $s) / 2.0;
$squish = cos(deg2rad($b));
$x = $squish * ($e - $w) / 2.0;
$y = ($n - $s) / 2.0;
$ne = array(
$a + ($x * cos(deg2rad($rotn)) - $y * sin(deg2rad($rotn))) /$squish,
$b + $x * sin(deg2rad($rotn)) + $y *cos(deg2rad($rotn))
);
$nw = array(
$a - ($x * cos(deg2rad($rotn)) + $y * sin(deg2rad($rotn))) /$squish,
$b - $x * sin(deg2rad($rotn)) + $y *cos(deg2rad($rotn))
);
$sw = array(
$a - ($x * cos(deg2rad($rotn)) - $y * sin(deg2rad($rotn))) /$squish,
$b - $x * sin(deg2rad($rotn)) - $y *cos(deg2rad($rotn))
);
$se = array(
$a + ($x * cos(deg2rad($rotn)) + $y * sin(deg2rad($rotn))) /$squish,
$b + $x * sin(deg2rad($rotn)) - $y *cos(deg2rad($rotn))
);
print_r(array(
'sw'=>$sw,
'se'=>$se,
'ne'=>$ne,
'nw'=>$nw,
));
Benim $squish
değişkeni (lat) bahsettiğim cos. Yatay uzunlukları göreceli kısmı için de-squishing bulunmaktadır. Sinüs tablo bu gibi görünüyor:
NE: (a + x cos A - y sin A, b + x sin A + y cos A)
NW: (a - x cos A - y sin A, b - x sin A + y cos A)
SW: (a - x cos A + y sin A, b - x sin A - y cos A)
SE: (a + x cos A + y sin A, b + x sin A - y cos A)
Belki tttppp tttppp masadan farkları için hesap verebilecek.