【问题标题】:Geo Intent Label not showing in Google Maps App谷歌地图应用程序中未显示地理意图标签
【发布时间】:2019-07-31 08:55:25
【问题描述】:

由于我的 Google 地图应用最近更新,现在是版本 10.11.1,以下代码未按预期显示标签 documented,并且以前可以正常工作:

  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)

official documentation 中的示例代码也没有显示标签:

// 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);

【问题讨论】:

  • 已确认 - 适用于 10.10.1,不适用于 10.12.1。
  • @xinaiz 感谢您的确认。不幸的是,我找不到任何有意义的方式向 Google 报告此错误。他们的地图团队将责任推给了应用程序团队,并且该应用程序没有传统的错误报告系统,可供多人投票。如果您知道任何通知 Google 的方法,请告诉我。
  • 我自己刚刚遇到它,并注意到我的模拟器中的旧地图应用程序正在显示标签,但我今天手机中的最新版本完全忽略了标签。
  • 今天标签在最新版本的谷歌地图上运行良好,但是当我试图立即再次检查时,标签消失了。
  • 2020 年 6 月问题依然存在。

标签: java android google-maps kotlin google-maps-markers


【解决方案1】:

更新:计划在 2022 年 1 月之前在 v11.12 中修复。

即使最新的地图更新 10.12.1 仍然没有解决方案,即使文档仍然说它应该显示标签仍然不显示 我在 Google 的问题跟踪器上创建了一个问题:https://issuetracker.google.com/issues/129726279

希望我们很快就会得到一些信息。

【讨论】:

  • 所有访问此问题的人,请在错误报告中添加评论,并加注星标。
  • 任何人都可以更新状态,因为我正在使用最新的 10.18.2 版本。问题仍然存在。任何替代解决方案?请告诉我。
  • 仍然没有解决方案:(
【解决方案2】:

Per Google,这是 Google 地图应用程序中的一个错误。它已在 11.12 版本中修复。

【讨论】:

  • 哇,感谢您带来这个好消息!
【解决方案3】:

我认为我们在这里的做法是错误的。如果我是 Google,我也会对允许开发人员发布带有抽象目的地标签的路线感到不安全,我相信他们永远不会打算解决这个问题。

根据 Google 的新标准,我推荐以下解决方案。 https://developers.google.com/maps/documentation/urls/android-intents:

https://www.google.com/maps/dir/?api=1&destination=LATITUDE,LONGITUDE

如果您查看当今大多数应用程序,包括我构建的应用程序,这允许我们发布 LAT/LONG 供用户访问,并使用内置的 Google 自己的地址值作为目标标签。

要实际启动 Google Maps 应用程序,只需启动一个 Web Intent,我在本例中使用应用程序上下文。

    fun startGoogleMaps(context: Context, lat: Double, long: Double) {
        startWebBrowser(
            context,
            Uri.parse("https://www.google.com/maps/dir/?api=1&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)
            }
        }
    }

【讨论】:

  • @user2297550 我理解这种挫败感。这不仅是解决当前问题的有用方法,而且是有多少公司和项目选择着手构建它。它只是从谷歌自己查询的实际文本开始方向,而不是丑陋的纬度/经度选择。我已经解释了为什么谷歌可能会冻结这个问题,不是为了“吸吮”他们,而是为了对这个问题提供一个可能的见解。
  • 我的评论在哪里消失了?
  • 然而它是一种回归。多年来它一直运行良好。我在 2015 年首次开始使用此功能。在 2019 年初的某个时候失败了,一直没有修复。
猜你喜欢
  • 2018-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多