#java #android #google-maps #kotlin #google-maps-markers
#java #Android #google-карты #kotlin #google-карты-маркеры
Вопрос:
Поскольку мое приложение Google Maps недавно обновилось, теперь версия 10.11.1, следующий код не отображает метку ожидаемым образом, документировано и ранее работало:
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("geo:38.8951,100.0364?q=38.8951,100.0364(foo)")).setPackage("com.google.android.apps.maps")
if (intent.resolveActivity(packageManager) == null) {
intent.setPackage(null)
}
startActivity(intent)
И эта версия также не отображается ( 0,0
сразу после geo:
):
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=38.8951,100.0364(foo)")).setPackage("com.google.android.apps.maps")
if (intent.resolveActivity(packageManager) == null) {
intent.setPackage(null)
}
startActivity(intent)
В коде примера в официальной документации метка также не отображается:
// Display a label at the location of Google's Sydney office
Uri gmmIntentUri = Uri.parse("geo:0,0?q=-33.8666,151.1957(Google Sydney)");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
Комментарии:
1. Подтверждено — работает в версии 10.10.1, не работает в версии 10.12.1.
2. @xinaiz Спасибо за подтверждение. К сожалению, я не смог найти никакого значимого способа сообщить об этой ошибке в Google. Их команда Maps переложила ответственность на команду app, и для приложения нет обычной системы отчетов об ошибках, в которой могут голосовать несколько человек. Если вы знаете какой-либо способ сообщить Google, пожалуйста, дайте мне знать.
3. Я только что столкнулся с этим сам и заметил, что старое приложение Maps в моем эмуляторе показывает метки, но последняя версия на моем телефоне на сегодняшний день полностью игнорирует метку.
4. Сегодня метка работает нормально для последней версии Google Map, но когда я попытался проверить ее снова, метка сразу же исчезла.
5. Проблема с июнем 2020 года все еще существует.
Ответ №1:
Обновление: планируется исправить в версии 11.12, возможно, до конца января 2022 года.
По-прежнему нет решения, даже с последним обновлением карты 10.12.1 метка по-прежнему не отображается, даже если в документации по-прежнему указано, что это должно быть Я создал проблему в системе отслеживания проблем Google:https://issuetracker.google.com/issues/129726279
надеюсь, вскоре у нас появится некоторая информация.
Комментарии:
1. Все, кто посещает этот вопрос, пожалуйста, добавьте комментарий к отчету об ошибке и отметьте его также.
2. Кто-нибудь может обновить статус, поскольку я работаю над последней версией 10.18.2. Проблема все еще существует. Есть альтернативное решение? Пожалуйста, дайте мне знать.
3. По-прежнему нет решения: (
Ответ №2:
Согласно Google, это ошибка в приложении Google Maps. Это исправлено в версии 11.12.
Ответ №3:
Я думаю, что здесь мы подходим к этому неправильно. Если бы я был Google, я бы также чувствовал себя неуверенно, разрешая разработчикам размещать указания с абстрактной меткой назначения, я уверен, что они никогда не планируют это исправлять.
Я рекомендую следующее решение в соответствии с новыми стандартами Google. https://developers.google.com/maps/documentation/urls/android-intents:
https://www.google.com/maps/dir/?api=1amp;destination=LATITUDE,LONGITUDE
Если вы посмотрите на большинство приложений в наши дни, включая те, которые я создал, это позволяет нам размещать широту / ДЛИНУ для перехода пользователя с собственными значениями адреса Google, встроенными в качестве метки назначения.
Чтобы фактически запустить приложение Google Maps, просто запустите веб-намерение, в данном случае я использую контекст приложения.
fun startGoogleMaps(context: Context, lat: Double, long: Double) {
startWebBrowser(
context,
Uri.parse("https://www.google.com/maps/dir/?api=1amp;destination=$lat,$long")
)
}
fun startWebBrowser(context: Context, link: Uri?) {
if (link != null) {
val webIntent = Intent(Intent.ACTION_VIEW, link).apply {
addFlags(FLAG_ACTIVITY_NEW_TASK)
}
if (webIntent.resolveActivity(context.packageManager) != null) {
context.startActivity(webIntent)
}
}
}
Комментарии:
1. @user2297550 Я понимаю разочарование. Это не только полезный способ обойти текущую проблему, но и то, сколько компаний и проектов решили заняться ее созданием. Он просто запускает указания с фактического текста, запрошенного самим Google, вместо уродливой альтернативы Lat / Long. Я объяснил, почему Google, возможно, приостанавливает действие этой проблемы, не для того, чтобы «подлизаться» к ним, а для того, чтобы дать возможное представление об этой проблеме.
2. Куда исчез мой комментарий?
3. Однако это регрессия. Раньше она работала нормально в течение многих лет. Я впервые начал использовать эту функцию в 2015 году. Сбой произошел где-то в начале 2019 года и не был исправлен.