一次在每个标记上显示信息窗口

时间:2015-10-07 05:00:31

标签: android google-maps marker

我希望展示this

之类的内容

我可以在地图上显示所有标记,但是我想在填充所有标记时在每个标记上显示信息窗口。         到目前为止我已经尝试了这个,但它只显示了一个标记信息窗口的所有标记。

for (int i = 0; i < jobsDtoList.size(); i++) {
    Double latitude = Double.parseDouble(jobsDtoList.get(i).getSiteLatitude());
    Double longitude = Double.parseDouble(jobsDtoList.get(i).getSiteLongitude());

    LatLng latLng = new LatLng(latitude, longitude);
    MarkerOptions TP = new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory.fromResource(R.mipmap.job_marker));
    googleMap.addMarker(TP).showInfoWindow();
}

1 个答案:

答案 0 :(得分:14)

一次无法显示多个信息窗口。来自the documentation

  

信息窗口允许您在用户显示信息时显示信息   点击标记。 一次只显示一个信息窗口。如果一个   用户点击另一个标记,将隐藏当前信息窗口   并将显示新的信息窗口。

您可能需要查看Google Maps Android API Utility Library中的气泡图标。 气泡图标为标记添加了更强大的渲染选项,但不会改变它们的行为。这意味着您仍然无法一次显示多个信息窗口,但气泡图标将允许您显示每个标记的更多信息:

  

添加IconGenerator以显示有关您的信息的摘要   标记。此实用程序提供了一种使标记图标看起来的方法   有点像信息窗口,因为标记本身可以包含文本   和其他内容。 优点是你可以保留多个   标记同时打开,而只能打开一个信息窗口   马上。您还可以设置标记的样式,更改标记的方向   标记和/或内容,并更改标记的背景   图像/九贴剂。

更新:使用气泡图标的示例(考虑到您需要在this instructions之后将Google Maps Android API实用程序库添加到您的项目中):

LatLng latLng = new LatLng(latitude, longitude);

TextView text = new TextView(context);
text.setText("Your text here");
IconGenerator generator = new IconGenerator(context);
generator.setBackground(context.getDrawable(R.drawable.bubble_mask));
generator.setContentView(text);
Bitmap icon = generator.makeIcon();

MarkerOptions tp = new MarkerOptions().position(latLng).icon(BitmapDescriptorFactory.fromBitmap(icon));
googleMap.addMarker(tp);