У меня есть URL-адрес https://www.google.com/maps/@41.3825581,2.1704375,16z
, показывающий Барселону на карте, но я обнаружил, что указатель адреса не выходит, он только центрирует карту.
На моем устройстве есть несколько картографических приложений:
- Карта города
- MAPS.ME
- Карты Гугл
- Гугл Земля
Код, который я должен запустить Intent
:
Uri uri = Uri.parse("https://www.google.com/maps/@41.3825581,2.1704375,16z");
if (URLUtil.isValidUrl(uri.toString())) {
startActivity( new Intent(Intent.ACTION_VIEW, uri));
}
Я получаю ActionList
выбор Maps
или Chrome
, если Maps
я нажимаю на приложение, оно открывается maps
, но оно не показывает мне положение с индикатором, оно фокусируется на ориентире и точке.
Если я укажу, что он открывается с помощью chrome
, появится другой ActionList
с другими картографическими приложениями.
Мои сомнения:
- Как запустить
Intent
конкретное приложение, чтобы его можно было открыть с помощью приложений Карт? - Как я могу отобразить маркер положения на карте?
Исправлено:
Отображение местоположения с маркером и меткой
geo:<lat>,<lon>?z=<zoom>&q=<lat>,<lon>(<label>)
Чтобы показать местоположение Барселоны
geo:41.3825581,2.1704375?z=16&q=41.3825581,2.1704375(Barcelona)
Чтобы показать ActionList
вывод всех совместимых приложений для определения местоположения
Uri uri = Uri.parse("geo:41.3825581,2.1704375?z=16&q=41.3825581,2.1704375(Barcelona)");
startActivity( new Intent(Intent.ACTION_VIEW, uri));
Если вы хотите отправить позицию непосредственно в приложение Google Maps
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("geo:41.3825581,2.1704375?z=16&q=41.3825581,2.1704375(Barcelona)"));
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);
Согласно этому ответу на SO на английском языке:
Форма такая:
Вы можете сделать это следующим образом:
Xxxx представляет широту и долготу, а 14.0f — уровень масштабирования.
https://www.google.com/maps/@41.3825581,2.1704375,16z
Как я могу отобразить маркер положения на карте?
Я не знаю, есть ли лучший способ сделать то, что вы просите, но если я понимаю ваш вопрос, вы можете попробовать некоторые из следующих примеров, если это то, что вы ищете, вы могли бы каким-то образом реализовать это в своем приложении. , если вы не можете получить координаты в следующем Act , я могу передать их внутри Intent и получить их там.
Как запустить конкретное намерение, чтобы его можно было открыть в приложениях Карт?
Что касается части, в которой говорится, как открыть приложение с намерением, я не знаю, это то, что вы имеете в виду: