Получить текущую точку отсчета, чтобы начать навигацию - PullRequest
0 голосов
/ 03 апреля 2019

Я наконец узнал, как добавить больше мест к моему маршруту в uri:

Пример:

Intent intent = new Intent(Intent.ActionView, Android.Net.Uri.Parse("https://www.google.com/maps/dir/48.8276261,2.3350114/48.8476794,2.340595/48.8550395,2.300022/48.8417122,2.3028844"));
StartActivity(intent);

Проблема в том, что я вижу только кнопку «Просмотр», а не «Пуск», чтобы начать навигацию. Я думаю, что это связано с тем, что первая точка не текущее местоположение. Кто-нибудь знает, как настроить первую точку в качестве отправной точки, где я сейчас нахожусь, чтобы иметь возможность начать навигацию?

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

Возможно, параметр dir_action = navigate будет близок к тому, что вы хотите.

В официальной документации Google Maps, раздел по Формирование URL-адреса маршрутов в Руководстве разработчика рассказывает о том, как ориентироваться с помощью Intent. Существуют dir_action = навигация и путевые точки в параметрах для настройки режима навигации и промежуточных настроек путевой точки.Если вам нужно начать с начальной точки пользователя, то параметром origin может быть (оригинал для наиболее релевантного начального местоположения, такого как местоположение пользователя, если доступно).

https://www.google.com/maps/dir/?api=1&parameters

origin : Определяет начальную точку для отображения направлений.По умолчанию используется наиболее релевантное начальное местоположение, например, местоположение пользователя, если оно доступно.Если нет, получающаяся карта может предоставить пустую форму, чтобы позволить пользователю ввести источник.

dir_action = navigate (необязательно): запускает пошаговую навигацию или предварительный просмотр маршрута до указанного пункта назначения в зависимости от того, доступен ли источник.Если пользователь указывает источник и он не близок к текущему местоположению пользователя, или текущее местоположение пользователя недоступно, карта запускает предварительный просмотр маршрута.Если пользователь не указывает источник (в этом случае источником по умолчанию является текущее местоположение пользователя), или источник близок к текущему местоположению пользователя, карта запускает пошаговую навигацию.Обратите внимание, что навигация доступна не для всех продуктов Google Карт и / или между всеми пунктами назначения;в этих случаях этот параметр будет игнорироваться.

waypoints : указывает одно или несколько промежуточных мест для маршрутизации между пунктами отправления и назначения.Несколько путевых точек могут быть указаны с помощью символа канала (|) для разделения мест (например, Берлин, Германия | Париж, Франция).Количество разрешенных путевых точек зависит от платформы, где открывается ссылка, при этом в мобильных браузерах поддерживается до трех путевых точек, а в противном случае поддерживается максимум девять путевых точек.Путевые точки отображаются на карте в том же порядке, в котором они указаны в URL.Каждая путевая точка может быть либо именем места, либо адресом, либо разделенными запятыми координатами широты / долготы.Строки должны быть экранированы URL, поэтому путевые точки, такие как «Берлин, Германия | Париж, Франция», должны быть преобразованы в Берлин% 2CGermany% 7CParis% 2CFrance.

Примеры из ваших данных:

Intent intent = new Intent(Intent.ActionView, Android.Net.Uri.Parse("https://www.google.com/maps/dir/?api=1&origin=48.8276261,2.3350114&destination=48.8417122,2.3028844&waypoints=48.8476794,2.340595|48.8550395,2.300022&travelmode=driving&dir_action=navigate"));
StartActivity(intent);

Если вы хотите получить defaulf от текущего местоположения:

Uri: "https://www.google.com/maps/dir/?api=1&origin=&destination=48.8417122,2.3028844&waypoints=48.8476794,2.340595|48.8550395,2.300022&travelmode=driving&dir_action=navigate"

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

Android.Net.Uri gmmIntentUri = Android.Net.Uri.Parse("google.navigation:q=48.8417122,2.3028844");
Intent mapIntent = new Intent(Intent.ActionView, gmmIntentUri);
mapIntent.SetPackage("com.google.android.apps.maps");
StartActivity(mapIntent);

Вы можете изменить q=48.8417122,2.3028844 на нужные вам данные назначения теста.

Если вы хотите изменить местоположение симулятора, посмотрите на скриншот ниже:

enter image description here enter image description here

1 голос
/ 03 апреля 2019

Вы можете использовать это:

String mapsUrl = "https://www.google.com/maps/dir/?api=1&origin=48.8276261,2.3350114&destination=48.8476794,2.340595&waypoints=48.8550395,2.300022|48.8417122,2.3028844&travelmode=driving&dir_action=navigate";
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mapsUrl));
startActivity(intent);

Где

origin ваша отправная точка destination ваша конечная точка waypoints это ваши остановки

Вы должны добавить waypoint с помощью |

пример: waypoints=48.8550395,2.300022|48.8417122,2.3028844

Вы также можете добавить travelmode, чтобы указать режим движения

Это режимы движения, которые вы можете использовать: driving, bicycling, transit, walking

Это откроет Google Maps в режиме вождения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...