Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Определение расстояний между городами РФ
Новая тема
Ответить
цитата
02/11/17 в 11:06
rassell
Подскажите сервис для определения расстояний между городами.
Задача: у фирмы есть более 30ти филиалов по России, нужно определить ближайший до пользователя филиал. Пользователь разумеется указывает свой город, но есть вероятность что в его городе филиала нет.
Примерная простая схема:
- есть филиалы в Москве и Питере
- пользователь из Архангельска (там филиала нет)
расстояние москва архангельск = 1239,3 км,
расстояние санкт петербург архангельск = 1153,3 км
показываем цены из питера т.к. расстояние меньше на 100км, отгружаем разумеется также из питера.
Может кто знает подобный сервис с вменяемым API?
Смотрел google distance matrix - то что нужно, но лимит на 25 точек до которых можно определить расстояние
цитата
02/11/17 в 14:25
Oswell E. Spencer
а зачем тут апи то? или именно по дорогам расстояние нужно?
можно же просто по географическим координатам посчитать.
вот гугл подсказывает
function distance($lat1,$lng1,$lat2,$lng2)
{
// Convert degrees to radians.
$lat1=deg2rad($lat1);
$lng1=deg2rad($lng1);
$lat2=deg2rad($lat2);
$lng2=deg2rad($lng2);
// Calculate delta longitude and latitude.
$delta_lat=($lat2 - $lat1);
$delta_lng=($lng2 - $lng1);
return round( 6378137 * acos( cos( $lat1 ) * cos( $lat2 ) * cos( $lng1 - $lng2 ) + sin( $lat1 ) * sin( $lat2 ) ) );
}
у postgresql есть встроенные функции для работы с координатами + типы данных соотвествующие, к слову.
Последний раз редактировалось: Oswell E. Spencer (
02/11/17 в 14:32
), всего редактировалось 1 раз
цитата
02/11/17 в 14:27
Oswell E. Spencer
дабл
цитата
02/11/17 в 19:39
mx-user
Нужен бесплатный продукт?
Есть яндекс-маршрутизатор, но он денег стоит.
цитата
02/11/17 в 19:44
3Sky
все продвинутые дальнобои
юзают ati.su
цитата
03/11/17 в 06:01
rassell
Oswell E. Spencer писал:
а зачем тут апи то? или именно по дорогам расстояние нужно?
расстояние нужно по дорогам
mx-user писал:
Нужен бесплатный продукт?
лучше платный, так как в этом случае вероятность того, что этот сервис проживет долго - выше
в идеале нужно что-то простое, желательно платное, по
типу вот этого
origins=Новосибирск - исходная точка
destinations=Волгоград|Москва - точки до которых измеряем расстояние
mode=driving - режим поездки на автомобиле
цитата
03/11/17 в 15:09
Oswell E. Spencer
rassell:
вот зачем тебе клиенту все 30+ точек показывать, выбери сначала 5 ближайших например, а потом расстояния по дороге до них. накуя считать для 30+ точек сразу, если это бессмысленно?
вот я ж тебе функцию дал, выбери по ней N ближайших, но менее 25, и дальше по гуглу дороги показывай.
Новая тема
Ответить
Эта страница в полной версии