Bir harita noktasına kilometre ekle

3 Cevap php

Günaydın.

Ben nasıl bir harita noktası (enlem / boylam) için kilometre eklerim bilmek istiyorum.

Örneğin: şehir Jaraguá Sul enlem -26,462049, boylam -49,059448 olduğu yok. Ben aşağı yukarı 100 kilometre eklemek istediğiniz, ve iki tarafta. Ben bir kare yapmak ve yeni puan almak istiyoruz.

Bunu nasıl yapabilirim?

Ben denedim:

<?php
$distance = 100;
$earthRadius = 6371;
$lat1 = -26.4853239150483;
$lon1 = -49.075927734375;
$bearing = 0;

$lat2 = asin(sin($lat1) * cos($distance / $earthRadius) + cos($lat1) * sin($distance / $earthRadius) * cos($bearing));
$lon2 = $lon1 + atan2(sin($bearing) * sin($distance / $earthRadius) * cos($lat1), cos($distance / $earthRadius) - sin($lat1) * sin($lat2));

echo 'LAT: ' . $lat2 . '<br >';
echo 'LNG: ' . $lon2;
?>

Ama bu yanlış cordinates dönüyor. Teşekkür ederiz!

Çok teşekkür ederim.

3 Cevap

zaten işaret edildi. PHP trigonometrik fonksiyonlar paramters olarak radyan alır.

parametrelerin radyan dönüşümler derece hile yapacak. muhtemelen derece sonuç istiyorsanız, bu yüzden geri dönüştürmek için rad2deg kullanın:

<?php
$distance = 100;
$earthRadius = 6371;
$lat1 = deg2rad(-26.4853239150483);
$lon1 = deg2rad(-49.075927734375);
$bearing = deg2rad(0);

$lat2 = asin(sin($lat1) * cos($distance / $earthRadius) + cos($lat1) * sin($distance / $earthRadius) * cos($bearing));
$lon2 = $lon1 + atan2(sin($bearing) * sin($distance / $earthRadius) * cos($lat1), cos($distance / $earthRadius) - sin($lat1) * sin($lat2));

echo 'LAT: ' . rad2deg($lat2) . '<br >';
echo 'LNG: ' . rad2deg($lon2);
?>

GÜNCELLEME:

PHP trigonometrik fonksiyonlar, Paramters olarak değil radyan derece almak, böylece bir parametre olarak deg2rad () kullanmanız gerekir:

sin(deg2rad($lat))

http://www.php.net/manual/en/function.deg2rad.php


Orijinal cevap:

Gerçekten büyük bir konu.

Size gerekli hassasiyet (ve kapalı mesafelerde) bağlı olarak, toprak mükemmel bir küre, ama bir jeoit (düzleştirilmiş elipsoyidi) olmadığını dikkate almak zorunda kalabilirsiniz.

http://en.wikipedia.org/wiki/Earth_radius

Bu başlamak olacaktır.

Haritalama ve projeksiyon sen, bir göz atmalısınız çok iki konu vardır

mesafelerin konuyla ilgili wikipedia başka bir bağlantı

http://en.wikipedia.org/wiki/Geographical_distance