Расчет дистанции между двумя точками + подсказки по поиску

R
На сайте с 03.08.2012
Offline
131
6266

Добрый день!

С наступающим рождеством всех и прошедшем новым годом!

Что мне необходимо: Сайт для зказа такси. Пользователь вводит информацию откуда он хочет ехать и куда. (2 текстовых поля), при вводе должны отображаться подсказки по улицам, чтобы он мог сразу выбрать. (как при поиске в ПС).

После того как он ввел ОТ и КУДА, скрипт (думаю с помощью API яндекс.карт или гугл) должен высчитать расстояние между 2 точками в км.

При этом желательно чтобы высчитал расстояние в км в городе и за городом. (город Киев).

Т.е. если маршрут только по городу, скрипт должен вернуть допустим 10 км по городу.

Если маршрут за город то скрипт должен вернуть, 20 км по городу и 10 за городом.

Км нужны чтобы высчитать цену поездки в такси и выдать пользователю на сайте.

Вот пример: http://www.uklon.com.ua

Какая проблема: не могу найти информацию в интернете и похожие примеры. Читал песочницу API яндекс.карт, но там есть примеры только чтобы строка поиска была на самой карте, а мне нужно без карты.

Буду очень благодарен, если Вы скинете парочку ссылок на хорошие статьи, чтобы разобраться с этой темой и реализовать.

I-M
На сайте с 04.10.2014
Offline
3
I-M
#1

Придется работать Только с яндекс картами. Для начала вот API карт. Готовых примеров в интернете не будет, Вам надо ознакомится с такими статьями:

Построение маршрута на карте, по заданным точкам

Яндекс Карты API расстояние и время между точками на карте

Это пока всё, что я смог найти. Надеюсь Вам пригодится.

Молодежное служение (http://www.myhist.org/)
R
На сайте с 03.08.2012
Offline
131
#2

Спасибо, будем изучать!

vlad00777
На сайте с 24.12.2009
Offline
119
#3
I-M:
Придется работать Только с яндекс картами

Брехня! Не знаешь - не учи.

Сам использовал Гугл для расчета расстояний и времени и просчета цены из пункта а в пункт Б. Работает отлично и без нареканий.

Ссылка тут: https://developers.google.com/maps/documentation/distancematrix/?hl=ru

И вот мой пример использования, писался давно, но вроде работает:


//Подготовка областей для гугл матриц
$arr = array();
$results = $wpdb->get_results("SELECT * FROM oblast");
foreach ( $results as $res )
{
$arr[] .= str_replace(" ", "%20", $res->obl );
}
//Конец подготовки

//Получаем данные о расстояниях между областями и городом проведения
foreach ($arr as $value) {
$val = str_replace("%20", " ", $value);
$results = $wpdb->get_row("SELECT * FROM ceni WHERE kuda='$_POST[city]' and otkuda='$val'");

if (!$results or $results<1) {
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array('Content-type: application/json') ,
CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)",
);

$tuCurl = curl_init();
$params = "origins=$value&destinations=$_POST[city]&mode=driving&language=ru-RU&sensor=false";
curl_setopt($tuCurl, CURLOPT_URL, "http://maps.googleapis.com/maps/api/distancematrix/json?".$params);
curl_setopt_array( $tuCurl, $options );
$tuData = curl_exec($tuCurl);
curl_close($tuCurl);
$json = json_decode($tuData);
$distance = $json->rows[0]->elements[0]->distance->value;
$sql = "INSERT INTO ceni (cena, otkuda, kuda) VALUES ('".$distance."', '".str_replace("%20", " ", $value)."', '".$_POST['city']."')";
$wpdb->query($sql);
}
}
//Конец получения данных
Верстка. Качественно! Адаптивная, резиновая, с параллаксом и прочими плюшками. В ЛС.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий