首页 > 其他 > 详细

图层的使用

时间:2014-03-22 20:46:35      阅读:280      评论:0      收藏:0      [点我收藏+]

1、使用图层ItemizedOverlay标注某个坐标点

bubuko.com,布布扣
// 实现标注item
            /* 生成ItemizedOverlay图层用来标注结果点
             * arg0为mark的Drawable
             * arg1为MapView
             * */
            ItemizedOverlay<OverlayItem> itemOverlay = new ItemizedOverlay<OverlayItem>(
                    null, mMapView);
            /*
             * OverlayItem表示单个overlay数据,如自定义标注,建筑等。是ItemizedOverlay的基本组件,
             * arg0为GeoPoint,确定item的位置
             * arg1为该item的文字片段
             * arg2为该item的标题文本
             */
            OverlayItem item = new OverlayItem(geoPoint, "item的文字片段", "item的标题文本");
            // 得到需要标在地图上的资源
            Drawable marker = getResources().getDrawable(R.drawable.icon_marka);
            // 为maker定义位置和边界(左上右下)
            marker.setBounds(0, 0, marker.getIntrinsicWidth(),
                    marker.getIntrinsicHeight());
            // 给item设置marker
            item.setMarker(marker);
            // 在图层上添加item
            itemOverlay.addItem(item);
            // 清除地图其他图层
            mMapView.getOverlays().clear();
            // 添加一个标注ItemizedOverlay图层
            mMapView.getOverlays().add(itemOverlay);
            // 设置地图默认的缩放级别
            mMapView.getController().setZoom(9);
            // 执行刷新使生效
            mMapView.refresh();
bubuko.com,布布扣

2、使用自定义图层处理点击事件

 

bubuko.com,布布扣
package com.eroad.component;

import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
import android.util.Log;

import com.baidu.mapapi.map.ItemizedOverlay;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.OverlayItem;
import com.baidu.platform.comapi.basestruct.GeoPoint;

/**
 * @author JL
 * 
 *         要处理overlay点击事件时需要继承ItemizedOverlay 不处理点击事件时可直接生成ItemizedOverlay.
 */
public class MyOverLay extends ItemizedOverlay<OverlayItem> {

    // 处理tap点击的句柄
    private Handler handler_item;

    public MyOverLay(Drawable mark, MapView mapView,Handler handler) {
        super(mark, mapView);
        // TODO Auto-generated constructor stub
        this.handler_item=handler;
    }

    // 在此处理item点击事件,并且一定会触发MapView的点击事件
    //arg0表示多个item中的序号
    @Override
    protected boolean onTap(int index) {
        // TODO Auto-generated method stub
        Log.e("item onTap: " ,""+ index);
        Message message=Message.obtain();
        message.obj=getItem(index);
        handler_item.sendMessage(message);
        return true;
    }

    // 在此处理MapView的点击事件,不一定会触发item点击事件
    @Override
    public boolean onTap(GeoPoint pt, MapView mapView) {
        // TODO Auto-generated method stub
        super.onTap(pt, mapView);
        Log.e("MapView onTap: " ,""+  pt.toString());
        return false;
    }

    public interface CallBack {
        
        public void excuteTap();

    }
}
bubuko.com,布布扣

使用自定义图层

bubuko.com,布布扣
    MyOverLay myOverLay = new MyOverLay(null, mMapView, new Handler() {

                @Override
                public void handleMessage(Message msg) {
                    // TODO Auto-generated method stub
                    super.handleMessage(msg);
                    OverlayItem item = (OverlayItem) msg.obj;
                    Toast.makeText(getApplicationContext(),
                            "坐标点:" + item.getPoint().toString(),
                            Toast.LENGTH_SHORT).show();
                }
            });
bubuko.com,布布扣

 

Done!

图层的使用,布布扣,bubuko.com

图层的使用

原文:http://www.cnblogs.com/xingyyy/p/3617935.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!