【问题标题】:Google Maps Android API utility library: Add a circle around the marker, when marker becomes visibleGoogle Maps Android API 实用程序库:当标记变得可见时,在标记周围添加一个圆圈
【发布时间】:2015-08-06 01:17:36
【问题描述】:

我正在开发使用 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);

}
}
}

以下是截图

集群时

当集群呈现当前行为时 期望的行为

【问题讨论】:

  • 你能详细说明你想要什么吗?我不明白...当集群被拆分时,您想在集群周围或单个标记周围看到一个圆圈吗?
  • @N Dorigatti 我希望在渲染集群时有一个标记围绕它。或者你可以在我的代码中说我希望每个 MarkerItem 在它的标记周围都有一个圆圈。

标签: java android google-maps


【解决方案1】:

试试这个:

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

【讨论】:

  • 这在我们使用 Google Maps Android API Utility 时不起作用。如果我们通过缩小来重新调整集群,它将保持地图上的圆圈。我已经尝试过类似的方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-23
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
  • 1970-01-01
  • 2013-02-26
相关资源
最近更新 更多