Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Определение расстояний между городами РФ
цитата
02/11/17 в 11:06
 rassell
Подскажите сервис для определения расстояний между городами.
Задача: у фирмы есть более 30ти филиалов по России, нужно определить ближайший до пользователя филиал. Пользователь разумеется указывает свой город, но есть вероятность что в его городе филиала нет.

Примерная простая схема:
- есть филиалы в Москве и Питере
- пользователь из Архангельска (там филиала нет)

расстояние москва архангельск = 1239,3 км,
расстояние санкт петербург архангельск = 1153,3 км
показываем цены из питера т.к. расстояние меньше на 100км, отгружаем разумеется также из питера.

Может кто знает подобный сервис с вменяемым API?
Смотрел google distance matrix - то что нужно, но лимит на 25 точек до которых можно определить расстояние icon_sad.gif
цитата
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
все продвинутые дальнобои smail101.gif юзают ati.su smail54.gif
цитата
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, и дальше по гуглу дороги показывай.


Эта страница в полной версии