android 百度地图描绘POI

 首先还是一贯作风,请大家先看一些图例:


      在上一篇介绍了地图显示自己的位置,在这一篇呢,我简单介绍下在地图如何show出来一系列POI(兴趣点)

      首先我们从服务器拉取要标记POI的信息如(lat,lon,Tag等信息)然后就是根据经纬度创建ItemizedOverlay.这个是用于显示一系列的POI.

     代码片段:

  在onLocationChanged调用:

/***
	 * Location 监听
	 * 
	 * @param arg0
	 */
	@Override
	public void onLocationChanged(Location location) {
		if (location != null) {
			// 获取自己的经纬度点
			GeoPoint geoPoint = new GeoPoint(
					(int) (location.getLatitude() * 1e6),
					(int) (location.getLongitude() * 1e6));
			mMapController.setCenter(geoPoint);

			addItemizedOverlay(geoPoint.getLatitudeE6() / 1e6,
					geoPoint.getLongitudeE6() / 1e6);// 定位一系列点

			// addOverLay(geoPoint);
		}

	}

	/***
	 * 添加一系列的overlay 范围在5000米内
	 * 
	 * @param lat
	 *            纬度
	 * @param lon
	 *            经度
	 */
	void addItemizedOverlay(double lat, double lon) {
		arrayList = new ArrayList<MarkInfo>();
		// 获取服务器返回的一系列点
		ArrayList<MarkInfo> markInfos = Constent.getArrayListPoint();
		for (int i = 0; i < markInfos.size(); i++) {
			MarkInfo markInfo = markInfos.get(i);
			Double dis = MyUtil.getGeoPointDistance(lat, lon, markInfo.lat,
					markInfo.lon);
			if (dis <= distance)
				arrayList.add(markInfo);
		}

		Drawable marker = getResources().getDrawable(R.drawable.item);
		marker.setBounds(0, 0, marker.getIntrinsicWidth(),
				marker.getIntrinsicHeight()); // 为maker定义位置和边界

		overlays = mMapView.getOverlays();
		myItemizedOverlay = new MyItemizedOverlay(marker, this, arrayList);

		myItemizedOverlay.setMapView(mMapView);

		overlays.add(myItemizedOverlay);
		mPopView = createMarkView();// 获取冒泡view
		myItemizedOverlay.setmPopView(mPopView);
		// 将泡泡添加到mMapView上
		mMapView.addView(mPopView, new MapView.LayoutParams(
				LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, null,
				MapView.LayoutParams.WRAP_CONTENT));
		mPopView.setVisibility(View.GONE);
	}

/***
	 * 创建点击mark时的弹出泡泡
	 */

	public View createMarkView() {
		layoutInflater = (LayoutInflater) getSystemSer
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值