Android URL-запрос Google Maps - установка маркера в автономном режиме - PullRequest
1 голос
/ 26 мая 2020

Я запускаю следующее намерение из моего приложения Android, используя опубликованный Google формат для URL-адресов карт :

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.google.com/maps/search/?api=1&query=51.196327,-7.325649")));

Все, что я хочу сделать, это поставить маркер на карту в запрошенном месте. Он отлично работает, когда я в сети, но если я go не в сети, все, что я получаю, это сообщение Не могу подключиться . Даже если я пропущу сообщение, маркер не появится. Это происходит даже, если я загружаю офлайн-карты для отмеченной области.

Автономный маркер - большая часть моего приложения, поэтому я хотел бы знать, есть ли способ размещать булавки через URL даже если карта ниже не загружается? Если есть способ просто разместить маркер и обойти любой локальный поиск, это было бы идеально. В настоящий момент Карты настаивают на поиске поблизости ненужных вещей.

1 Ответ

2 голосов
/ 26 мая 2020

На самом деле можно разместить и показать маркер на картах Google с мобильным устройством в автономном режиме.

Вы можете сделать это, используя его настраиваемую схему URL-адресов :

Uri gmmIntentUri = Uri.parse("geo:51.196327,-7.325649?q=51.196327,-7.325649");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
    startActivity(mapIntent);
}

после geo: вы устанавливаете координаты центра, а затем параметр q предназначен для выполнения поиска (как тот, который вы выполняли), и если вы установите координату в качестве параметра поиска, он покажет там маркер.

И тот же пример в kotlin:

val gmmIntentUri = Uri.parse("geo:51.196327,-7.325649?q=51.196327,-7.325649")
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
mapIntent.setPackage("com.google.android.apps.maps")
if (mapIntent.resolveActivity(packageManager) != null) {
    startActivity(mapIntent)
}

Вы можете указать еще одно условие, чтобы что-то сделать, если приложение Google Maps не установлено на этом устройстве.

...