搞Android的,所以比较幸苦和累现在搞的app是关于百度地图的,因为要求要把所有覆盖物显示在一个视野。。。所以在网上找了很久,终于找打了方法
我引用的包是:
记录一下,其实不算很难。一个小点。翻了不少资料终于搞好了。
看代码:
public void addTasksToBaiduMapAsMarker(final JsonArray taskJsionArray){ baiduMap.clear(); listOverlayOptions.clear(); addJsonArrayToListOverlayOptions(listOverlayOptions,taskJsionArray); final OverlayManager overlayManager =new OverlayManager(baiduMap){ @Override public List getOverlayOptions() { return listOverlayOptions; } @Override public boolean onMarkerClick(Marker marker) { LatLng latLng = marker.getPosition(); InfoWindow currentInfoWindow = new InfoWindow(getInfoWindoView(marker), latLng, -77); baiduMap.showInfoWindow(currentInfoWindow); return true; } }; overlayManager.addToMap(); overlayManager.zoomToSpan(); }
1 private void addJsonArrayToListOverlayOptions( List<OverlayOptions> listOverlayOptions,JsonArray taskJsionArray ){ 2 int arraySize = taskJsionArray.size(); 3 for(int i=0;i<arraySize;i++){ 4 JsonObject taskJson = taskJsionArray.get(i).getAsJsonObject(); 5 double taskLatitude = JsonUtil.jsonElementToDouble(taskJson.get("latitude")); 6 double taskLonitude = JsonUtil.jsonElementToDouble(taskJson.get("longitude")); 7 final String strTitle = JsonUtil.jsonElementToString(taskJson.get("title")); 8 final String strDetailLocation = JsonUtil.jsonElementToString(taskJson.get("subject")); 9 if (taskLatitude == 0) { 10 return; 11 } 12 LatLng currentLatLng = new LatLng(taskLatitude, taskLonitude); 13 Bundle bundle = new Bundle(); 14 bundle.putString("taskJson", taskJson.toString()); 15 OverlayOptions ooA = new MarkerOptions().position(currentLatLng).icon(getBitmapDescriptor()).zIndex(9).draggable(true).extraInfo(bundle); 16 listOverlayOptions.add(ooA); 17 } 18 }
用的就是OverlayManager.zoomToSpan()显示在视野中。 不算很难。
private List<OverlayOptions> listOverlayOptions = null;就是一个List.不说了。干!
时间: 2024-10-30 01:24:28