Возможность открытия в Яндекс навигаторе

Все вопросы/проблемы по установке и использовании.
Ответить
serg_k
Сообщения: 49
Зарегистрирован: 11 ноя 2020, 14:05
Имя: Сергей К
Откуда: РФ Москва

Возможность открытия в Яндекс навигаторе

Сообщение serg_k »

Версия 2.8.2 с дополнениями.
Реализовано поле google карт с геокодированием.
В базу данных сохраняются после геокодирования данные вида:

55.897692905580586 37.4761452065662 %D0%B3.+%D0%9C%D0%BE%D1%81%D0%BA%D%B0%2C+%D1%83%D0%BB.+%D0%A1%D0%BC%D0%BE%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%2C+%D0%B4.63

Если из этой строки выделить широту и долготу, после этого подставить значения в ссылку вида

CONCAT("<a href=yandexnavi://build_route_on_map?lat_to=" , [574] , "&lon_to=", [575] , ">Маршрут</a>")

где [574] и [575] широта и долгота, то появляется возможность на мобильных устройствах открыть навигатор с проложенным маршрутом. (P.S. Единственно если часто открывать то Яндекс Навигатор начинает ругаться, но пару раз в час работает достаточно хорошо и этого достаточно).

Столкнулся с проблемой, что длина адреса (цифры широты и долготы) может отличатся на разных адресах, соответственно метод LEFT() не подошел, SUBSTRING() или SUBSTRING_INDEX() не отрабатывает корректно (пробел между цифрами вроде как есть, но не распознается).

Прошу подсказать как можно отдельно выделить цифровые данные из приведенных значений, для того чтобы можно было для удобства сделать ссылку для открытия Навигатора
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Возможность открытия в Яндекс навигаторе

Сообщение support »

Попробуйте использовать поле https://docs.rukovoditel.net.ru/index.php?p=104
Там можно разделить строку и вытянуть необходимые значения.
believe
Инвестор
Инвестор
Сообщения: 449
Зарегистрирован: 09 янв 2020, 11:49
Имя: Владимир
Откуда: Тверь
Организация: ООО "ВебСофт"

Re: Возможность открытия в Яндекс навигаторе

Сообщение believe »

serg_k писал(а): 27 июл 2021, 17:15 Версия 2.8.2 с дополнениями.
Реализовано поле google карт с геокодированием.
В базу данных сохраняются после геокодирования данные вида:

55.897692905580586 37.4761452065662 %D0%B3.+%D0%9C%D0%BE%D1%81%D0%BA%D%B0%2C+%D1%83%D0%BB.+%D0%A1%D0%BC%D0%BE%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%2C+%D0%B4.63

Если из этой строки выделить широту и долготу, после этого подставить значения в ссылку вида

CONCAT("<a href=yandexnavi://build_route_on_map?lat_to=" , [574] , "&lon_to=", [575] , ">Маршрут</a>")

где [574] и [575] широта и долгота, то появляется возможность на мобильных устройствах открыть навигатор с проложенным маршрутом. (P.S. Единственно если часто открывать то Яндекс Навигатор начинает ругаться, но пару раз в час работает достаточно хорошо и этого достаточно).

Столкнулся с проблемой, что длина адреса (цифры широты и долготы) может отличатся на разных адресах, соответственно метод LEFT() не подошел, SUBSTRING() или SUBSTRING_INDEX() не отрабатывает корректно (пробел между цифрами вроде как есть, но не распознается).

Прошу подсказать как можно отдельно выделить цифровые данные из приведенных значений, для того чтобы можно было для удобства сделать ссылку для открытия Навигатора
Добрый день! Можете рассказать подробнее, как вы это реализовываете? Мне тоже интересен данный функционал?
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Возможность открытия в Яндекс навигаторе

Сообщение support »

Можете рассказать подробнее, как вы это реализовываете?
Поле google карта хранит координаты в базе. Вы можете открыть phpmyadmin и проверить.
Соответственно эти координаты можно получить и использовать. Mysql запросом это неудобно делать.
А вот с помощью php поля будет удобно получить значение, вытянуть из него широту\долготу и использовать в ссылке например.
believe
Инвестор
Инвестор
Сообщения: 449
Зарегистрирован: 09 янв 2020, 11:49
Имя: Владимир
Откуда: Тверь
Организация: ООО "ВебСофт"

Re: Возможность открытия в Яндекс навигаторе

Сообщение believe »

support писал(а): 28 июл 2021, 09:24
Можете рассказать подробнее, как вы это реализовываете?
Поле google карта хранит координаты в базе. Вы можете открыть phpmyadmin и проверить.
Соответственно эти координаты можно получить и использовать. Mysql запросом это неудобно делать.
А вот с помощью php поля будет удобно получить значение, вытянуть из него широту\долготу и использовать в ссылке например.
Благодарю, понял. Нужен пример, как вытаскивать с полей именно нужную информацию с использованием php. Можно такой предоставить?
serg_k
Сообщения: 49
Зарегистрирован: 11 ноя 2020, 14:05
Имя: Сергей К
Откуда: РФ Москва

Re: Возможность открытия в Яндекс навигаторе

Сообщение serg_k »

Благодарю за помощь, все заработало как надо.

Код получился следующий (кому это надо), тип поля PHP код:

Код: Выделить всё

$content=[500];
$coordinaty=explode("\t",trim(strip_tags($content))); 
$ur1='<a href=yandexnavi://build_route_on_map?lat_to=';
$ur2='&lon_to=';
$ur3='>Маршрут</a>';
$output_value=$ur1 . $coordinaty[0] . $ur2 . $coordinaty[1] . $ur3;
Где [500] поле с типом карта Google

P.S. Имейте ввиду, что у Яндекс Навигатора имеется ограничение на открытие со сторонних приложений 5 запросов в сутки на одно мобильное устройство. Данная ссылка работает и на iOs и на Android смартфонах. Автоматически с web страницы открывается Навигатор и прокладывается маршрут до точки (поиск по координатам, а не по адресу)
believe
Инвестор
Инвестор
Сообщения: 449
Зарегистрирован: 09 янв 2020, 11:49
Имя: Владимир
Откуда: Тверь
Организация: ООО "ВебСофт"

Re: Возможность открытия в Яндекс навигаторе

Сообщение believe »

Ключ не предоставляют для web приложений...
Вложения
777777.JPG
believe
Инвестор
Инвестор
Сообщения: 449
Зарегистрирован: 09 янв 2020, 11:49
Имя: Владимир
Откуда: Тверь
Организация: ООО "ВебСофт"

Re: Возможность открытия в Яндекс навигаторе

Сообщение believe »

Гугл вроде без ограничений работает.
$content=[213];
$coordinaty=explode("\t", trim(strip_tags($content)));
$ur1='<a href=google.navigation:q=';
$ur2=',';
$ur3='>Проложить маршрут через Google</a>';
$output_value=$ur1 . $coordinaty[0] . $ur2 . $coordinaty[1] . $ur3;
Ответить