百度地图 多个覆盖物

地图覆盖物标记实践
本文介绍了一种在地图上标记多个覆盖物的方法。通过自定义类`MyOverlayItem`继承`ItemizedOverlay`并实现其抽象方法,可以将特定位置的覆盖物添加到地图视图中。文中详细展示了如何定义覆盖物的位置、名称及描述。

           实现标记多个覆盖物

一些代码都是雷同,不赘述。

如下代码定义了用于标记的图片。注意这个时候不用指定地图的中点。

Drawable drawable = getResources().getDrawable(R.drawable.iconmarka);


mapView 添加覆盖物。

mapView.getOverlays().add(new MyOverLayItem(drawable));

定义内部类MyOverLayItem{}继承ItemizedOverlay类,并实现其中的抽象方法。

public class MyOverlayItem extends ItemizedOverlay<OverlayItem>{
		private List<OverlayItem> list=new ArrayList<OverlayItem>();
		private  double mlat1=43.81631;
		private  double mlon1=125.26484;
		
		private  double mlat2=43.8101;
		private double mlon2=125.2678;
		
		private double mlat3=43.8147;
		private double mlon3=125.2700;
		
		public MyOverlayItem(Drawable drawable) {
			super(drawable);
			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.add(new OverlayItem(geoPoint1, "point1", "这儿是经信"));
			list.add(new OverlayItem(geoPoint2, "point2", "经信附近"));
			list.add(new OverlayItem(geoPoint3, "point3", "经信附近"));
			populate();
		}

		@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 0;
		}
		public boolean onTap(int i){
			Toast.makeText(MainActivity.this, list.get(i).getSnippet(), 1).show();
			return true;
		}
		
		
	}

目测版本好像有点低~~  下次争取改良   出现了一个好大的BUG!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值