Задать вопрос
@mr_timson
Продажи -> маркетинг -> управление проектами

Как сделать карту с зонами доставки для пиццерии на базе yandex или google?

Всем привет.

Есть такая задача - сделать на сайте пиццерии зоны доставки с возможностью проверить адрес - входит он зону доставки или нет, если входит, то в какую?

Идея у меня такая.
Очертить на карте многоугольник (многоугольники) зоны доставки, получить от клиента адрес через api, получить массив адресов из многоугольника, сравнить, выдать результат.
И желательно, чтобы многоугольник ограничивался улицами.
Какой именно api - не имеет значения, хотя интересно и для гугла и для яндекса :)

Прошу сразу не пинать - а не программер, я только учусь :)
Вчера до ночи сидел над yandex api 2.0 и google api 3.0, но как получить адрес из зоны так и не понял. Также не нашел как запросить проверку адреса - входит в зону или нет :(
  • Вопрос задан
  • 12673 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
@ugodrus
Впринципе это возможно. Но врятли средствами API в чистом виде. Я бы сделал с помощью радиальных зон.
Допустим есть три точки (отправные пункты). Для каждой указан радиус обслуживаемой территории. Получаете данные о пункте доставки и сверяете своими силами какой зоне принадлежит эта точка. Если их несколько, то можете определить ближайший центр, или ещё какой-нибудь принцип. В конечном счете все сведётся к элементарной геометрии.
Ответ написан
Комментировать
yttrium
@yttrium
Ответ написан
Комментировать
@Fenomen51
Есть произвольные зоны и возможно рассчитать либо попадание в каскад зон *1,2,3.. либо найдя попадание в одну зону, ещё и маршрут построить, взять из него время в пути..
Ответ написан
@Zohei
Делается все очень просто средствами API яндекс/гугл/других карт и mysql/postgresql...
Решение вашей задачи сможете найти на clubs.ya.ru/mapsapi
Почитайте также про spatial data.

1. делаете редактор многоугольников
2. сохраняете координаты вашего многоугольника в базу в spacial data
3. делаете запросы на попадание точки в область
// mysql
SELECT * FROM TABLE WHERE CONTAINS(polygon, GeomFromText(:point)
:point'= POINT({$lat} {$lng})

4. чтобы вывести полигон обратно на карту, делаете примерно такой запрос select AsText(`polygon`) AS polygon from table
и затем полученные координаты форматируете в удобоваримый вид для js
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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