private void showMapViewRoutes(List<GPSInfo> lstWgs84HashMap) { ArrayList<GeoPoint> lstWgs84GeoPoint = RoutesHelper.getWgs84GeoPoint(lstWgs84HashMap); // mRoutesOverlay if (mMapView != null) { try { if (mRoutesOverlay != null) { if (mMapView.getOverlays().contains(mRoutesOverlay)) { mMapView.getOverlays().remove(mRoutesOverlay); mRoutesOverlay = null; } } mRoutesOverlay = new RoutesOverlay(mPathActivity, mMapView); { mRoutesOverlay.setOnOverlayEventListener(this); mRoutesOverlay.setData(lstWgs84GeoPoint); } mMapView.getOverlays().add(0, mRoutesOverlay); mMapView.invalidate(); mMapView.getController().animateTo(lstWgs84GeoPoint.get(0)); } catch (Exception e) { e.printStackTrace(); } } }
@Override public void onClick(View v) { switch (v.getId()) { case R.id.btnAddress: mapView.getOverlays().clear(); // 清除公交站点的标识 mapView.invalidate(); GeoPoint geoPoint = new GeoPoint((int) (39.915 * 1e6), (int) (116.454 * 1e6)); EditText tvAdr = (EditText) findViewById(R.id.etAddress); // 根据中心点geoPoint在1000半径内查询KFC mkSearch.poiSearchNearBy(tvAdr.getText().toString(), geoPoint, 5000); // GeoPoint geoPoint=new GeoPoint(39904965, 116327764); // mkSearch.reverseGeocode(geoPoint); break; case R.id.btnLine: mapView.getOverlays().clear(); // 清除公交站点的标识 EditText etLine = (EditText) findViewById(R.id.etLine); mkSearch.poiSearchInCity("北京", etLine.getText().toString()); // EditText etadd=(EditText) findViewById(R.id.etAddress); // mkSearch.geocode("北京", etadd.getText().toString()); break; default: break; } }
public void hideAllBalloons() { if (!isInflating) { List<Overlay> mapOverlays = mapView.getOverlays(); if (mapOverlays.size() > 1) { hideOtherBalloons(mapOverlays); } hideBalloon(); } }
protected void onHandlerSuccess(Object obj) { mActionBar.setProgressBarVisibility(View.GONE); if (obj != null) { @SuppressWarnings("unchecked") List<GPSInfo> lstWgs84HashMap = (List<GPSInfo>) obj; if (lstWgs84HashMap.size() > 0) { // 至少得有一个点嘛(第一个,最后一个有没有可能一样呢?有的) showMapViewRoutes(lstWgs84HashMap); } else { ToastShow.show(mPathActivity, R.string.datetime_toast_nodata); if (mMapView.getOverlays().contains(mRoutesOverlay)) { mMapView.getOverlays().remove(mRoutesOverlay); // mRoutesOverlay.onDestroy(); mRoutesOverlay = null; } // if (mMapView.getOverlays().contains(mMovingOverlay)) { // mMapView.getOverlays().remove(mMovingOverlay); // mMovingOverlay.onDestroy(); // mMovingOverlay = null; // } } } }
private void checkInitMap() { if (mMapView == null) { mMapView = (MapView) findViewById(R.id.path_mapview); // 设置是否启用内置的缩放控件 mMapView.setBuiltInZoomControls(true); // 设置在缩放动画过程中也显示overlay,默认为不绘制 mMapView.setDrawOverlayWhenZooming(true); // mMapView.getOverlays().clear(); // 添加定位图层 mMxLocationOverlay = new MxLocationOverlay(mPathActivity, mMapView); mMxLocationOverlay.setOnOverlayEventListener(this); mMapView.getOverlays().add(mMxLocationOverlay); // 添加汽车图层 mCaricoOverlay = new BitmapOverlay(mPathActivity, mMapView); mCaricoOverlay.setBitmap("rmct_routes_car.png"); mMapView.getOverlays().add(mCaricoOverlay); mBtnBegTime = (Button) findViewById(R.id.path_begtime); mBtnEndTime = (Button) findViewById(R.id.path_endtime); mBtnBegTime.setOnClickListener(this); mBtnEndTime.setOnClickListener(this); mActionBar = (ActionBar) findViewById(R.id.path_actionbar); mActionBar.setRootView(findViewById(R.id.path_main)); mViewback = mActionBar.showBackButton(); mViewback.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { PathActivity.this.finish(); } }); } }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mBMapMan = new BMapManager(getApplication()); mBMapMan.init("C852FAE280E276186DE82EB547721866666283B0", null); super.initMapActivity(mBMapMan); mapView = (MapView) findViewById(R.id.mapview); mapView.setBuiltInZoomControls(true); mapOverlays = mapView.getOverlays(); // first overlay drawable = getResources().getDrawable(R.drawable.marker); itemizedOverlay = new CustomItemizedOverlay<CustomOverlayItem>(drawable, mapView); GeoPoint point = new GeoPoint((int) (39.90923 * 1E6), (int) (116.397428 * 1E6)); CustomOverlayItem overlayItem = new CustomOverlayItem( point, "Tomorrow Never Dies (1997)", "(M gives Bond his mission in Daimler car)", "http://ia.media-imdb.com/images/M/MV5BMTM1MTk2ODQxNV5BMl5BanBnXkFtZTcwOTY5MDg0NA@@._V1._SX40_CR0,0,40,54_.jpg"); itemizedOverlay.addOverlay(overlayItem); GeoPoint point2 = new GeoPoint((int) (39.9022 * 1E6), (int) (116.3922 * 1E6)); CustomOverlayItem overlayItem2 = new CustomOverlayItem( point2, "GoldenEye (1995)", "(Interiors Russian defence ministry council chambers in St Petersburg)", "http://ia.media-imdb.com/images/M/MV5BMzk2OTg4MTk1NF5BMl5BanBnXkFtZTcwNjExNTgzNA@@._V1._SX40_CR0,0,40,54_.jpg"); itemizedOverlay.addOverlay(overlayItem2); mapOverlays.add(itemizedOverlay); // second overlay drawable2 = getResources().getDrawable(R.drawable.marker2); itemizedOverlay2 = new CustomItemizedOverlay<CustomOverlayItem>(drawable2, mapView); GeoPoint point3 = new GeoPoint((int) (39.917723 * 1E6), (int) (116.3722 * 1E6)); CustomOverlayItem overlayItem3 = new CustomOverlayItem(point3, "Sliding Doors (1998)", "(interiors)", null); itemizedOverlay2.addOverlay(overlayItem3); GeoPoint point4 = new GeoPoint((int) (51.51738 * 1E6), (int) (-0.08186 * 1E6)); CustomOverlayItem overlayItem4 = new CustomOverlayItem( point4, "Mission: Impossible (1996)", "(Ethan & Jim cafe meeting)", "http://ia.media-imdb.com/images/M/MV5BMjAyNjk5Njk0MV5BMl5BanBnXkFtZTcwOTA4MjIyMQ@@._V1._SX40_CR0,0,40,54_.jpg"); itemizedOverlay2.addOverlay(overlayItem4); mapOverlays.add(itemizedOverlay2); final MapController mc = mapView.getController(); mc.animateTo(point2); mc.setZoom(16); }
/** * Creates and displays the balloon overlay by recycling the current balloon or by inflating it * from xml. * * @return true if the balloon was recycled false otherwise */ private boolean createAndDisplayBalloonOverlay() { boolean isRecycled; if (balloonView == null) { balloonView = createBalloonOverlayView(); clickRegion = balloonView.findViewById(R.id.balloon_inner_layout); clickRegion.setOnTouchListener(createBalloonTouchListener()); closeRegion = balloonView.findViewById(R.id.balloon_close); if (closeRegion != null) { if (!showClose) { closeRegion.setVisibility(View.GONE); } else { closeRegion.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { hideBalloon(); } }); } } if (showDisclosure && !showClose) { View v = balloonView.findViewById(R.id.balloon_disclosure); if (v != null) { v.setVisibility(View.VISIBLE); } } isRecycled = false; } else { isRecycled = true; } balloonView.setVisibility(View.GONE); List<Overlay> mapOverlays = mapView.getOverlays(); if (mapOverlays.size() > 1) { hideOtherBalloons(mapOverlays); } if (currentFocusedItem != null) { balloonView.setData(currentFocusedItem); } GeoPoint point = currentFocusedItem.getPoint(); MapView.LayoutParams params = new MapView.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, point, MapView.LayoutParams.BOTTOM_CENTER); params.mode = MapView.LayoutParams.MODE_MAP; balloonView.setVisibility(View.VISIBLE); if (isRecycled) { balloonView.setLayoutParams(params); } else { mapView.addView(balloonView, params); } return isRecycled; }