如何在 Android 上的 Google 地图上的标记旁边显示标签?

Posted

技术标签:

【中文标题】如何在 Android 上的 Google 地图上的标记旁边显示标签?【英文标题】:How to show a label next to a marker on Google maps on Android? 【发布时间】:2018-01-19 14:22:37 【问题描述】:

我正在开发一个使用 Google 地图 android API 的 Android 应用程序。我在地图上显示了多个标记,我想在每个标记旁边显示一个标签,如下图所示,但我无法找到怎么做。

我浏览了https://developers.google.com/maps/documentation/android-api/map-with-marker 上的 Google 地图文档 但我无法找到有关如何以这种方式显示标签的详细信息。我尝试了打开一个弹出窗口的标题属性,但我需要它来显示关于我的标记的详细视图(信息窗口),我需要显示主要标题而不打开任何标记的弹出窗口

知道如何按照附图中显示的方式添加标记吗?

【问题讨论】:

你可以查看这些***.com/questions/17989389/… @NavjotSingh:我见过这些。标题属性仅在用户单击标记时显示 【参考方案1】:

不确定这是否是您的想法,但这里是

创建MarkerOptions 对象:

MarkerOptions options = new MarkerOptions()
                .title(name)
                .position(source)
                .icon(gettIconFromDrawable(myMarker))
                .snippet("Briefly describe \nyour content here");

然后将标记添加到地图上

Marker sourceMarker = mMap.addMarker(options);

创建InfoWindowAdapter 以容纳sn-p 中的多行。 (原answer这里)

mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() 

            @Override
            public View getInfoWindow(Marker arg0) 
                return null;
            

            @Override
            public View getInfoContents(Marker marker) 

                Context context = getApplicationContext(); //or getActivity(), YourActivity.this, etc.

                LinearLayout info = new LinearLayout(context);
                info.setOrientation(LinearLayout.VERTICAL);

                TextView title = new TextView(context);
                title.setTextColor(Color.BLACK);
                title.setGravity(Gravity.CENTER);
                title.setTypeface(null, Typeface.BOLD);
                title.setText(marker.getTitle());

                TextView snippet = new TextView(context);
                snippet.setTextColor(Color.GRAY);
                snippet.setText(marker.getSnippet());

                info.addView(title);
                info.addView(snippet);

                return info;
            
        );

最后,添加此属性以确保标记保持可见

sourceMarker.showInfoWindow();

【讨论】:

感谢您的帮助。但实际上我在问题中提到我已经在使用 infoWindow 来显示关于标记对象的自定义和详细视图。我需要为地图上的所有标记显示一个线标签,无需单击标记即可看到该线标签 这就是sourceMarker.showInfoWindow(); 位应该做的事情 但我的要求略有不同。所有标记都必须有一个可见的标签,单击标记应显示包含该标记详细信息的详细信息窗口 嗨@AkshitRewari 你找到解决方案了吗?如果您找到了解决方案,可以分享一下吗?

以上是关于如何在 Android 上的 Google 地图上的标记旁边显示标签?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过滑行在 Google 地图上的 infoWindow 中获取图像 - Android

Android Studio - 真正的 Android 设备上的 Google 地图在发布 apk 时仍为空白

Google Maps Android API v2 - 检测地图上的触摸

为啥我在 Google 地图上的当前位置在 Android 应用中不正确? [复制]

如何在 iOS 上的 Google 地图标记中添加附加信息

来自 JSON 的 Google 地图上的标记