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

时间:2017-08-11 07:00:42

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

我正在使用谷歌地图Android API的Android应用程序。我在地图上显示多个标记,我想在每个标记旁边显示一个标签,如下图所示,但我无法了解如何做到这一点。

Image with google map marker and label

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

我知道如何以附加图像中显示的方式添加标记吗?

1 个答案:

答案 0 :(得分: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以容纳代码段中的多行。 (此处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();