Ищу скрипт расчета расстояния между городами

Redjik

Джедай-мастер
AmdY, так оно и понятно... и если делать с нуля, то нужно откуда то брать/покупать базу дорог, преобразовывать в графы (есть базы с поддержкой графов и кратчайших путей), но даже если идти дальше и велосипедить и крутить алгоритм чисто в памяти, то пых не очень подходит для задачи
1) Желательно постоянно держать демона, держашего в памяти все графы
2) Пых не умеет графы, чтобы все более менее прилично работало надо делать или свою реализацию алгоритма обхода в глубину на С или брать тот же Boost на С++

короче, куча подводных камней, а тут парень, или парсит гуглы или делает Big Circle Distance с коэффициентом на дорогу (процентов 10)
 
  • Like
Реакции: WMix

Demon2009g

Новичок
Уважаемый, AmdY, мое решение полностью удовлетворяет требованиям и считает дистанцию именно по автомобильным путям.

Уметь мало - нужно еще в этих классах разобраться и прикрутить - и опять же это синусоидальная прямая

AmdY, так оно и понятно... и если делать с нуля, то нужно а тут парень, или парсит гуглы или делает Big Circle Distance с коэффициентом на дорогу (процентов 10)
А я и не утверждал, что какой-то сложный механизм реализовывал)))

Просто заказали у меня выполнение одного проекта, этот инструмент пришлось реализовывать самому. И вот недавно пришла мысль обнародовать данный сервис, тк сам не одну собаку съел на реализации этой задачи.

Мое дело простое - Предложить
Ваше - если понравится, то использовать.))
 
Последнее редактирование:
  • Like
Реакции: AmdY

WMix

герр M:)ller
Партнер клуба
Пых не умеет графы, чтобы все более менее прилично работало надо делать или свою реализацию алгоритма обхода в глубину на С или брать тот же Boost на С++
а разве это не обычное бинарное дерево?
 

Redjik

Джедай-мастер
а разве это не обычное бинарное дерево?
нет =)
в зависимости от задачи может быть матрицей или списком смежности

в принципе все решаемо и на пыхе, но не искаропки, то есть обход в глубину и ширину все равно писать, это раз, оверхед по памяти жутчайший будет со звалами то, это два
вообще у меня есть идейка в далеких планах экстеншен для пыха попробовать написать для работы с графами (тупо Boost адаптировать), но хз дойдут ли руки в этом столетии :D
 

WMix

герр M:)ller
Партнер клуба
боюсь что да, ну те это изначально матрица, карта или уже не помню как зовется, пункты на карте с маршрутами длиной между точками, по ходу вычислений создается дерево, до тех пор пока две точки не сошлись, проверить какой из 2х путей короче невозможно. запоминаем кратчайший путь и ищем дальше.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
PHP:
  public function getApproximateRoadDistance(Point $point, $degreeApproximation = 10)
    {
        $distance = $this->getCartographicDistance($point);
        return round($distance + $distance * ($degreeApproximation / 100));
Мне сложно понять кому оно такое надо. Пальцем в ... попу.
Рассчитывать так цену доставки в ecommerce - это гарантированно облажаться.
 

Redjik

Джедай-мастер
grigori, рассчитывать цену доставки через расстояние вообще не лучший вариант ;)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
а как же ты ее рассчитаешь? полным массивом локаций и цен? :) видел-видел
 

Вурдалак

Продвинутый новичок
Мне сложно понять кому оно такое надо. Пальцем в ... попу.
Рассчитывать так цену доставки в ecommerce - это гарантированно облажаться.
Я что-то упустил — тут где-то есть цена? Или где-то написано, что это универсальная модель?
 

Demon2009g

Новичок
Иногда прикалывает, когда люди пытаются изобрести велосипед заново - у кого-то получается, у кого-то нет!
Но еще больше поражают те люди, которые пытаются заново изобрести автомобиль, который да еще не только ездит по суше, а еще плавает в море и летает в небесах.
Конечно, как говорится, нет ничего невозможного, но, как правило, такие проекты кончаются провалом!
Гораздо проще взять уже готовый проект, проверенный временем и тестами, и уже допилить под текущие нужды.
Будет не так изящно, будет возможно чуть медленнее и возможно это будет самый уродливый в мире автомобиль - но зато он будет работать здесь и сейчас, при чем в довольно сжатые сроки!

Есть такие гиганты в области карт как Яндекс и Гугл - не стоит с ними соревноваться! В одиночку Вам их не победить!
Ну не предоставили они такой простой возможности расчета через GET или POST, что нам теперь плакать?!
За-то они дали нам deliveryCalculator, где есть прекрасная var distance = Math.round(router.getLength() / 1000);
Знания как СисАдмина так и по совместительству программиста, а также наличие возможности выделить сервак, позволили мне реализовать проксирующий сервис.
Кому дано понять - тот понял и может попытаться повторить мой опыт, иначе просто пользуйтесь сервисом! )))))))

P.S. Быть может Яндексу или Гуглу все-таки придет в голову мысль о разработке такого сервиса, ну а пока нам придется обходится костылями!))
 
Последнее редактирование:
  • Like
Реакции: AmdY
Сверху