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

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

喜欢这个 :-) … 在此处输入图像描述 我似乎无法弄清楚如何做到这一点。

我努力了:

// create marker MarkerOptions marker = new MarkerOptions().position( new LatLng(latitude, longitude)).title("title"); // adding marker googleMap.addMarker(marker).showInfoWindow(); googleMap.getUiSettings().setMapToolbarEnabled(true); 

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

喜欢这个 :-( … 在此处输入图像描述 我有点卡住任何想法?

Solutions Collecting From Web of "自动显示Google地图标记的工具栏"

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

如果您必须具有此function,则可以使用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); 

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

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

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

我在此处添加了一项function请求: http : //code.google.com/p/gmaps-api-issues/issues/detail?id = 7652

引用文档:

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

看起来好像没有办法在工具栏中保留工具栏,因为它是一个交互式地图。 如果需要,您可能需要尝试使用精简模式: 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); 

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

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

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

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

希望这可以帮助。

我有一个类似的问题…..如果你没有让用户在地图中浏览并只关注你的标记,你可以使用精简版地图….来自文档的引用

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

再次来自docs

此外,默认情况下,当用户点按地图时,API会启动Google地图移动应用。 您可以使用GoogleMap.setOnMapClickListener()设置自己的侦听器来覆盖此设置。 您还可以通过在包含MapView或MapFragment的视图上调用setClickable()来禁用地图上的单击事件。

显示DialogFragment而不是信息窗口并处理其中的所有内容。

 @Override public boolean onMarkerClick(Marker marker) { FragmentManager fm = getSupportFragmentManager(); DialogFragment markerWebView = DialogFragment(); mMap.animateCamera(CameraUpdateFactory.newLatLng(marker.getPosition())); markerWebView.show(fm, "fragment_marker"); return true; } 

要么

使用标记点击可以使用Google地图按钮的传真打开/关闭叠加层

 mMap.setOnMarkerClickListener(this); mMap.setOnInfoWindowClickListener(this); @Override public boolean onMarkerClick(Marker marker) { //here turn on the overlays for nav turns etc. for this marker. return false } @Override public void onInfoWindowClick(Marker marker) { //here turn off the overlays for nav turns etc. marker.hideInfoWindow(); } 

如果我没有弄错,你想要显示与地图右侧按钮上的标记相关的两个按钮,如果我是真的那些按钮对标记有一些依赖性,那么你只需要实现一个新的方法,如下面的代码,只需在您的标记单击侦听器中创建并确保调用此方法

 @Override public void markerIntentButtonShow(Marker marker) { //setvisible(true) to your side buttons or call some Intent Intent i = new Intent(getActivity(), MarkerViewDetails.class); i.putExtra("marker_snippet", marker.getSnippet()); startActivity(i); } 

并在您的点击监听器中调用该方法

  googleMap .setOnInfoWindowClickListener(new OnInfoWindowClickListener() { @Override public void onInfoWindowClick(Marker marker) { markerIntentButtonShow(marker); } }); 

并在您的onCreateView中

 MarkerOptions marker = new MarkerOptions().position( new LatLng(latitude, longitude)).title("title"); googleMap.addMarker(marker).showInfoWindow(); markerIntentButtonShow(marker); 

对于您以红色勾勒的工具栏,可以使用UISettings中的setMapToolbarEnabled()方法禁用它

从文档:

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

禁用两个按钮的代码示例:

 //Disable Map Toolbar: mMap.getUiSettings().setMapToolbarEnabled(false); 

万一你也想知道缩放按钮,你可以像这样禁用它们:

 mMap.getUiSettings().setZoomControlsEnabled(false);