简体   繁体   English

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

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

I am working on Android application which makes use of Google Maps and Google Maps Android API Utility Library. 我正在开发使用Google Maps和Google Maps Android API Utility Library的Android应用程序。 By making use of the utility library I got the clustered markers. 通过使用实用程序库,我得到了聚类标记。 But I want to show circle around the marker, when markers become visible. 但是,当标记变得可见时,我想在标记周围显示圆圈。 Following is the code I am using to add clustered markers: 以下是我用来添加群集标记的代码:

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

}
}
}

Following are the screenshots 以下是屏幕截图

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

When Cluster rendered current behavior 当Cluster呈现当前行为时 在此处输入图片说明 Desired Behavior 期望的行为 在此处输入图片说明

Try this: 尝试这个:

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