上一篇文章写道如何在一个mapview中简单的显示地图;本次学习一下如何在地图上添加一些覆盖物。

1.设置显示交通地图:

1 // 显示交通地图2 mapView.setTraffic(true);

2.设置显示为卫星地图:

// 显示交通地图//mapView.setTraffic(true);        // 显示卫星地图mapView.setSatellite(true);

当然卫星地图和交通地图也可以同时显示

3.百度地图提API供了一下几种覆盖物

// MyLocationOverlay:负责显示用户当前位置// PoiOverlay:本地搜索图层,提供某一特定区域的位置搜索服务// RouteOverlay:不行、驾车导航线路图层,将步行、驾车出行方案的线路及关键点显示在地图上。// TransitOverlay:公交换乘路线图层,将某一特定区域的公交出行方案的线路及换乘位置显示在地图上 

4.给一个覆盖物添加一些标注

    public class MyOverlay extends Overlay {        // 用来显示当前的经纬度        private GeoPoint geoPoint = new GeoPoint((int) (39.915 * 1E6),                (int) (116.404 * 1E6));                //声明一个画笔        private Paint paint = new Paint();        @Override        public void draw(Canvas arg0, MapView arg1, boolean arg2) {            // TODO Auto-generated method stub            super.draw(arg0, arg1, arg2);                        Point point = mapView.getProjection().toPixels(geoPoint, null);            arg0.drawText("*这里是天安门*", point.x, point.y, paint);        }    }

然后在MainActivity中将这个点添加进去

mapView.getOverlays().add(new MyOverlay());

5.给多个覆盖物添加标注

    @SuppressLint("NewApi")    public class MyOverlayItem extends ItemizedOverlay<OverlayItem> {        private List<OverlayItem> list = new ArrayList<OverlayItem>();        // 定义一个坐标,double类型        private double mLat1 = 39.90923; // 表示经度        private double mLon1 = 116.397428;// 表示纬度        private double mLat2 = 39.9022; // 表示经度        private double mLon2 = 116.3922;// 表示纬度        private double mLat3 = 39.917723; // 表示经度        private double mLon3 = 116.37222;// 表示纬度        // 用于在地图上标识坐标,用一个图片标注        public MyOverlayItem(Drawable arg0) {            super(arg0);            // TODO Auto-generated constructor stub            GeoPoint geoPoint1 = new GeoPoint((int) (mLat1 * 1E6),                    (int) (mLon1 * 1E6));            GeoPoint geoPoint2 = new GeoPoint((int) (mLat2 * 1E6),                    (int) (mLon2 * 1E6));            GeoPoint geoPoint3 = new GeoPoint((int) (mLat3 * 1E6),                    (int) (mLon3 * 1E6));            // 分别在list中把这几个点添加进去            list.add(new OverlayItem(geoPoint1, "Point01", "Point01"));            list.add(new OverlayItem(geoPoint2, "Point02", "Point02"));            list.add(new OverlayItem(geoPoint3, "Point03", "Point03"));                        //地图刷新的功能            populate();        }        // 返回制定的list集合中每一个坐标        @Override        protected OverlayItem createItem(int arg0) {            // TODO Auto-generated method stub            return list.get(arg0);        }        // 返回地图上点的个数        @Override        public int size() {            // TODO Auto-generated method stub            return list.size();        }                 @Override         public boolean onTap(int i) {         // TODO Auto-generated method stub         Toast.makeText(MainActivity.this, list.get(i).getSnippet(),         1).show();         return true;         }    }

然后在MainActivity中添加一下代码(需要在项目中导入一张图片,命名为:iconmarka):

        Drawable drawable = getResources().getDrawable(R.drawable.iconmarka);        mapView.getOverlays().add(new MyOverlayItem(drawable));

最终效果图:

更多相关文章

  1. android添加第三方库以及JNI接口封装
  2. Android(安卓)如何用HttpClient 以Get方式获取数据并添加http头
  3. 【Android】 textview 中超出屏幕宽度的字符 省略号显示
  4. android照相机竖屏显示的图像出现旋转的问题,但成像被拉伸了
  5. 在android工程中导入jar包或lib
  6. Android(安卓)MTK 8.1 预制应用 (讯飞输入法)
  7. android user模式下切换为root权限方法
  8. android ContentResolver的使用(获取和修改联系人信息demo)
  9. Android进行短信备份的一个工具类,支持进度条显示

随机推荐

  1. 自动化批量管理工具salt-ssh - 运维小结
  2. 【故障处理】imp-00051,imp-00008
  3. 【ROLLUP】Oracle分组函数之ROLLUP魅力
  4. Tomcat利用MSM实现Session共享方案解说
  5. Highcharts实现圆角柱形图
  6. Centos6.8下编译安装LAMP的操作记录梳理
  7. 利用 mk-table-checksum 监测 MySQL主从
  8. org.springframework.beans.factory.Bean
  9. Tomcat 内存溢出
  10. 执行git push出现