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

我有一个标记,当我打开地图时,它显示标记。 当我点击它时,它会显示标题和一个工具栏,其中包含地图右下angular的两个button,让我可以启动意图导航到标记或在Google地图中显示。 我想这些地图被打开时会自动显示,而不是让用户点击标记。

喜欢这个 :-) … 在这里输入图像说明 我似乎无法解决如何做到这一点。

我努力了:

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

但是这只是显示标记标题和右上angular的button去我的位置,而不是右下angular的两个工具栏意图button。

喜欢这个 :-( … 在这里输入图像说明 我有点卡住任何想法?

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

点击标记时出现的叠加层隐式创build并现场销毁。 你不能手动显示(还)。

如果您必须具备此function,则可以使用2个ImageViews在地图上创build叠加层,并在点击时调用适当的意图:

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

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

现在要隐藏默认的覆盖图,您只需在OnMarkerClickListener返回true OnMarkerClickListener 。 虽然您将失去在标记上显示InfoWindows和中心相机的能力,但您可以简单地模仿:

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

引用文档:

在精简模式映射中,工具栏将独立于用户的操作而保持不变。 在完全交互的地图中,当用户点击标记并且当标记不再聚焦时,工具栏滑入。

因为它是一个交互式的地图,看起来像没有办法坚持你的情况下的工具栏。 如果需要,您可以尝试使用Lite模式: 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)

希望这可以帮助。

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

我有一个类似的问题…..如果你没有让用户浏览地图,只是专注于你的标记,你可以使用lite模式地图….从文档引用

在精简模式映射中,工具栏将独立于用户的操作而保持不变。 在完全交互的地图中,当用户点击标记并且当标记不再聚焦时,工具栏滑入。

再次从文档

此外,默认情况下,当用户点击地图时,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地图button的传真打开/closures叠加层

 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(); } 

如果我没有弄错,你想显示在地图的右侧botton一侧的标记相关的两个button,这些button有一些依赖标记,如果我是真的,所以你只需要tu实现一个新的方法下面的代码,只是在创build时调用这个方法,并确保在你的标记点击侦听器

 @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地图应用中查找高亮标记的路线”。

代码示例禁用这两个button:

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

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

 mMap.getUiSettings().setZoomControlsEnabled(false);