Добавьте километры к точке карты

Доброе утро.

Я хотел бы знать, как я добавляю километры к точке карты (широта / долгота).

Например: город Jaraguá делает Sul находится в широте-26.462049, долгота-49.059448. Я хочу сложить 100 километров, вниз, и на сторонах. Я хочу сделать квадрат и понять новые мысли.

Как я делаю это?

Я попробовал его:

<?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;
?>

Но это возвращает неправильные координаты.Спасибо!

Большое спасибо.

7
задан Cœur 10 October 2018 в 14:35
поделиться

3 ответа

Большая тема. Вот несколько вводных ссылок:

http://www.movable-type.co.uk/scripts/latlong.html

http://jan.ucc.nau.edu/~cvm/latlongdist.html

1
ответ дан 7 December 2019 в 03:13
поделиться

ОБНОВЛЕНИЕ:

Тригонометрические функции PHP принимают радианы в качестве параметров, а не градусы, поэтому вам нужно использовать deg2rad () в качестве параметра:

sin(deg2rad($lat))

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


Исходный ответ:

Действительно большая тема.

В зависимости от требуемой точности (и пройденного расстояния) вам, возможно, придется принять во внимание, что Земля - ​​не идеальная сфера, а геоид (плоский эллипсоид).

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

поможет вам начать это.

Картирование и проекция - две темы, на которые вы тоже должны обратить внимание

еще одна ссылка из Википедии на тему расстояний

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

1
ответ дан 7 December 2019 в 03:13
поделиться

На основании вашей новой информации у меня есть два альтернативных подхода. (1) Google "PHP GIS". Вы найдете несколько интересных ресурсов. Может быть, один из них сработает. (2) Если ваши предприятия определены по широте и долготе, вам придется использовать (1), я думаю. Но есть ли подход «тупее»? Например, если каждое предприятие связано с городом, используйте простые координаты карты («K16») для определения городов. Или что-то более умное с точки зрения кода, но это идея.

0
ответ дан 7 December 2019 в 03:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: