Как показать маркер в Картах, запущенных Geo Uri Intent?

У меня есть приложение, где я хочу показать разные местоположения (по одному в то время, выбранные пользователем), запустив Карты Google с их конкретными геокоордами.

В настоящее время я использую это: (с реальными значениями lat и long), конечно)

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:,?z=17")); startActivity(intent); 

Это совсем то, что я хочу, за исключением того, что он не показывает индикатор или маркер для указанной точки. Он только сосредотачивается на своем месте.

Есть ли способ получить маркер или что-то еще без использования MapView?

Попробуй это:

 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:,?q=,(Label+Name)")); startActivity(intent); 

Вы можете опустить (ярлык + имя), если вам не нужен ярлык, и он будет выбирать один случайным образом на основе ближайшей улицы или другой вещи, которая, по его мнению, будет актуальной.

Принятый ответ правильный, за исключением случаев, когда у вашей метки есть амперсанд (&).

Глядя на унифицированный идентификатор ресурса для географических мест (‘geo’ URI) :

Раздел 5.1 гласит:

если конечный URI должен включать компонент запроса, добавьте разделитель компонента «?» до конца результата, за которым следует строка закодированного запроса.

К сожалению, для нас это также позволит избежать «=», чего мы не хотим. Мы должны сделать следующее:

 String label = "Cinnamon & Toast"; String uriBegin = "geo:12,34"; String query = "12,34(" + label + ")"; String encodedQuery = Uri.encode( query ); String uriString = uriBegin + "?q=" + encodedQuery; Uri uri = Uri.parse( uriString ); Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri ); startActivity( intent ); 

Есть много других возможностей для запуска карты Google, используя намерение …

  Double myLatitude = 44.433106; Double myLongitude = 26.103687; String labelLocation = "Jorgesys @ Bucharest"; 

1)

 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:<" + myLatitude + ">,<" + myLongitude + ">?q=<" + myLatitude + ">,<" + myLongitude + ">(" + labelLocation + ")")); startActivity(intent); 

2)

 String urlAddress = "http://maps.google.com/maps?q="+ myLatitude +"," + myLongitude +"("+ labelLocation + ")&iwloc=A&hl=es"; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlAddress)); startActivity(intent); 

3)

  String urlAddress = "http://maps.googleapis.com/maps/api/streetview?size=500x500&location=" + myLatitude + "," + myLongitude + "&fov=90&heading=235&pitch=10&sensor=false"; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlAddress)); startActivity(intent); 

Эта строка хорошо работает для меня:

 String geoUriString="geo:"+lat+","+lon+"?q=("+head+")@"+lat+","+lon; Uri geoUri = Uri.parse(geoUriString); Log.e(TAG, "String: "+geoUriString); Intent mapCall = new Intent(Intent.ACTION_VIEW, geoUri); startActivity(mapCall); 

Вы пытались добавить (LocationMarkerName) в geo: uri? например “geo:,? z = 17 (LocationMarkerName)”

В Google Maps на Android, ищущем 23.0980,30.6797 (NamedMarker), кажется, что центр карты и позиционирует маркер с именем NamedMarker в этой позиции.

Только что подтвержденный следующий fragment от @Kenton Price по-прежнему работает на Android 4.4

 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:,?q=,(Label+Name)")); startActivity(intent); 

Я использовал Overlays с MapView для рисования маркеров поверх карты. Если ваше представление показывает вашу карту, возможно, вы сможете просто нарисовать маркер в центре экрана так же, как вы нарисуете любое изображение в представлении. Однако маркер не будет связан с фактическими координатами карты, но если это просто статическое представление, то это может сделать.

  • Использование classа приложения Android для сохранения данных
  • Не удалось решить: com.android.support:appcompat-v7:26.0.0
  • Диалоговое окно предупреждения о дизайне материалов
  • Не удалось найти com.android.tools.build:gradle:3.0.0-alpha1 в круге ci
  • Сообщение для facebook wall from android fb sdk всегда ошибка
  • как создать круговой просмотрщик?
  • TileProvider с использованием локальной плитки
  • Как включить или отключить компонент?
  • Скрытие ActionBar в RecyclerView / ListView onScroll
  • Не удается запустить эмулятор в android studio 2.0
  • Как перейти в одно и то же родительское состояние
  • Давайте будем гением компьютера.