繁体   English   中英

Google Maps Android API实用程序库:当标记可见时,在标记周围添加一个圆圈

[英]Google Maps Android API utility library: Add a circle around the marker, when marker becomes visible

我正在开发使用Google Maps和Google Maps Android API Utility Library的Android应用程序。 通过使用实用程序库,我得到了聚类标记。 但是,当标记变得可见时,我想在标记周围显示圆圈。 以下是我用来添加群集标记的代码:

public class ClusterMarkersFragment {

public GoogleMap map;
private ClusterManager<MarkerItem> fenceClusterManager;

public static ClusterMarkersFragment newInstance () {
    ClusterMarkersFragment clusterMarkersFragment = new
        ClusterMarkersFragment();
    return clusterMarkersFragment;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);
    View view = inflater.inflate( R.layout.fragment_cluster_marker_map,
                                  container, false );

    map = ((SupportMapFragment) getChildFragmentManager()
        .findFragmentById( R.id.view_map )).getMap();
    map.setMyLocationEnabled(false);

    fenceClusterManager = new ClusterManager<MarkerItem>(getActivity(), map);

    map.setOnCameraChangeListener(fenceClusterManager);

    addClusterItems(getListofLatLngPairs());

    return view;
}

private List< LatLngPair > getListofLatLngPairs () {
     // returns the list from database
}   

private void addClusterItems(List<LatLngPair> latLngPairs) {
for (LatLngPair latLngPair : latLngPairs) {
    MarkerItem markerItem = new MarkerItem(latLngPair.lat, latLngPair.lng, (int) latLngPair);
    fenceClusterManager.addItem(markerItem);

}
}
}

以下是屏幕截图

群集时 在此处输入图片说明

当Cluster呈现当前行为时 在此处输入图片说明 期望的行为 在此处输入图片说明

尝试这个:

private void addcircleAroundMarker() {
GoogleMap mapView;
    // circle settings  
    int radiusM = RADIUS OF CIRCLE;
    double latitude = CENTER LATITUDE;
    double longitude = CENTER LONGITUDE;
    LatLng latLng = new LatLng(latitude,longitude);

    // draw circle
    // diameter 
    int d = 500; 
    Bitmap bm = Bitmap.createBitmap(d, d, Config.ARGB_8888);
    Canvas c = new Canvas(bm);
    Paint p = new Paint();
    p.setColor(getResources().getColor(R.color.green));
    c.drawCircle(d/2, d/2, d/2, p);

    BitmapDescriptor bmD = BitmapDescriptorFactory.fromBitmap(bm);

    mapView.addGroundOverlay(new GroundOverlayOptions().
            image(bmD).
            position(latLng,radiusM*2,radiusM*2).
            transparency(0.4f));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM