Google Maps Api v2中带标记的持久标题

时间:2014-11-15 00:21:23

标签: android google-maps google-maps-api-3

这应该很容易,但我无法找到任何帮助。

我正在为Google Maps Api设置自定义标记,如下所示:

    MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Fisk");
    marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.doghouse));
    mMap.addMarker(marker);

我希望能够使标题持久,以便始终显示。我也想知道如何编辑标题的外观!标题最终将是动态的,或者我会使图像包含标题。

2 个答案:

答案 0 :(得分:1)

首先,您应该注意一些GoogleMaps细节:

  • 无法显示多个标记InfoWindow s
  • 标记特定的点击监听器不可用,但您可以查看点击了哪个标记
  • 点击标记,即使您在听众中使用了点击,也会隐藏InfoWindow
  • 点击地图,关闭已打开的InfoWindow

要克服这些代码:

final Marker marker = mMap.addMarker(new MarkerOptions().position(
        new LatLng(51.5072, 0.1275)).title("B"));
marker.showInfoWindow();

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker m) {
        marker.showInfoWindow();
        return true; // Consume the clicks
    }
});

mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
    @Override
    public void onMapClick(LatLng latLng) {
        marker.showInfoWindow();
    }
});

注意:这适用于单个标记,如果您希望同时显示多个标记标题,则最好添加叠加层。

答案 1 :(得分:1)

您可以制作自己的标记布局并添加此

LinearLayout tv = (LinearLayout) this.getLayoutInflater().inflate(R.layout.test_layout, null, false);
        tv.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
                MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
        tv.layout(0, 0, tv.getMeasuredWidth(), tv.getMeasuredHeight()); 

        tv.setDrawingCacheEnabled(true);
        tv.buildDrawingCache();
        Bitmap bm = tv.getDrawingCache();


and      BitmapDescriptor icon = BitmapDescriptorFactory.fromBitmap(bm);
                BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);
                map.addMarker(new MarkerOptions().position(new LatLng(latitudemy, longitudemy)).title("xxxx").snippet("xxxxx").icon(icon));