小问题描述
区域搜索完后,重新向服务器获取点信息,并加入到mClusterManager.addItem(),发现聚合点,或者说叫makers点没有出来
解决的办法
final float DEFAULT_ZOOM_LEVEL = 15.0f;
LatLng centerLatLng = new LatLng();
/**
* @date 创建时间:2021/4/26 0026
* @auther gaoxiaoxiong
* @Descriptiion 区域搜索到后执行
**/
@Override
public void onGetDistrictResult(DistrictResult districtResult) {
if (districtResult == null) {
return;
}
if (districtResult.error == SearchResult.ERRORNO.NO_ERROR) {
List<List<LatLng>> polyLines = districtResult.getPolylines();
if (polyLines == null) {
return;
}
centerLatLng = districtResult.centerPt;//获取行政区域中心点
//发起网络请求
readMakersGatherStore(paramsGatherStoreModel);
}
}
/**
* @date 创建时间:2021/4/22 0022
* @auther gaoxiaoxiong
* @Descriptiion 查询到的局域集合
**/
public void updateMakersGatherStore(List<GatherStoreModel> list) {
//清除所有的标记点
mBaiduMap.clear();
mClusterManager.clearItems();
for (int i = 0; i < list.size(); i++) {
GatherStoreModel gatherStoreModel = list.get(i);
double lat = Double.parseDouble(gatherStoreModel.getLatitude());
double lon = Double.parseDouble(gatherStoreModel.getLongitude());
LatLng latLng = new LatLng(lat, lon);
mClusterManager.addItem(new Polymer(latLng, i, defaultBitmapMaker));
}
// 需要更新下地图状态,聚合点才会显示出来
float zoomTo = 0.0f;
if (mBaiduMap.getMapStatus().zoom > DEFAULT_ZOOM_LEVEL) {
zoomTo = mBaiduMap.getMapStatus().zoom - 0.1f;
}else {
zoomTo = DEFAULT_ZOOM_LEVEL + 0.1f;
}
MapStatus.Builder mapStatusBuilder = new MapStatus.Builder();
mapStatusBuilder.target(centerLatLng).zoom(zoomTo);
mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(mapStatusBuilder.build()));
}
网友评论