自动显示Google地图标记的工具栏

sam*_*n87 27 android google-maps google-maps-markers google-maps-android-api-2

我有一个标记,当我打开地图时,它会显示标记.当我点击它时,它会显示标题和一个工具栏,其中包含地图右下角的两个按钮,让我可以启动意图导航到标记或在谷歌地图中显示它.我希望在打开地图时自动显示这些内容,而不是让用户点击标记.

像这样 :-) ... 在此输入图像描述 我似乎无法弄清楚如何做到这一点.

我试过了:

// create marker
MarkerOptions marker = new MarkerOptions().position(
        new LatLng(latitude, longitude)).title("title");

// adding marker
googleMap.addMarker(marker).showInfoWindow();
googleMap.getUiSettings().setMapToolbarEnabled(true);
Run Code Online (Sandbox Code Playgroud)

但这只是显示标记标题和右上角的按钮转到我的位置而不是右下角的两个工具栏意图按钮.

像这样 :-( ... 在此输入图像描述 我有点卡住任何想法?

Sim*_*mas 14

单击标记时出现的叠加层会在现场隐式创建和销毁.你无法手动显示(还).

如果您必须具有此功能,则可以使用2在地图上创建叠加层ImageViews,并在单击时调用相应的意图:

// Directions
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(
        "http://maps.google.com/maps?saddr=51.5, 0.125&daddr=51.5, 0.15"));
startActivity(intent);
// Default google map
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(
        "http://maps.google.com/maps?q=loc:51.5, 0.125"));
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

注意:您需要根据标记getPosition()和用户的位置更改坐标.

现在要隐藏默认覆盖,您需要做的就是返回true OnMarkerClickListener.虽然你将无法InfoWindows在标记上显示和居中摄像头,但你可以模仿它:

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker marker) {
        marker.showInfoWindow();
        mMap.animateCamera(CameraUpdateFactory.newLatLng(marker.getPosition()));
        return true;
    }
});
Run Code Online (Sandbox Code Playgroud)


use*_*882 6

引用文档:

在精简模式映射中,工具栏会独立于用户的操作而保留.在完全交互式地图中,当用户点击标记时工具栏会滑入,当标记不再处于焦点时,工具栏会再次滑出.

看起来好像没有办法在工具栏中保留工具栏,因为它是一个交互式地图.如果需要,您可能需要尝试使用精简模式:https: //developers.google.com/maps/documentation/android/lite

还看着你的代码:

// create marker
MarkerOptions marker = new MarkerOptions().position(
        new LatLng(latitude, longitude)).title("title");

// adding marker
googleMap.addMarker(marker).showInfoWindow();
googleMap.getUiSettings().setMapToolbarEnabled(true);
Run Code Online (Sandbox Code Playgroud)

最后一行:googleMap.getUiSettings().setMapToolbarEnabled(true);除非您事先明确地将其设置为false,否则是冗余的.该文件指出:

设置是否应启用或禁用地图工具栏的首选项.如果启用,用户将看到一个包含各种与上下文相关的操作的栏,包括"在Google地图应用中打开此地图"和"查找Google地图应用中突出显示的标记的路线".

默认情况下,启用地图工具栏.

链接:https://developer.android.com/reference/com/google/android/gms/maps/UiSettings.html#setMapToolbarEnabled(boolean)

希望这可以帮助.