百度地图点击地图,标点并显示地址信息

    private MapView mMapView;  
    private BaiduMap mBaiduMap;  
    private BitmapDescriptor bd;  
    private String address; 

public class MapActivity extends Activity {  

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        // 在使用SDK各组件之前初始化context信息,传入ApplicationContext  
        // 注意该方法要再setContentView方法之前实现  
        SDKInitializer.initialize(getApplicationContext());  
        setContentView(R.layout.activity_map);  

        // 获取地图控件引用  
        mMapView = (MapView) findViewById(R.id.bmapView);  
        mBaiduMap = mMapView.getMap();  
        //设置是否显示比例尺控件  
        mMapView.showScaleControl(false);  
        //设置是否显示缩放控件  
        mMapView.showZoomControls(false);  
        // 删除百度地图LoGo  
        mMapView.removeViewAt(1);  


        // 设置marker图标  
        bd = BitmapDescriptorFactory.fromResource(R.drawable.maker);  
        mBaiduMap.setOnMapClickListener(new OnMapClickListener() {  

            @Override  
            public boolean onMapPoiClick(MapPoi arg0) {  
                // TODO Auto-generated method stub  
                return false;  
            }  

            //此方法就是点击地图监听  
            @Override  
            public void onMapClick(LatLng latLng) {  
                //获取经纬度  
                double latitude = latLng.latitude;  
                double longitude = latLng.longitude;  
                                    //先清除图层  
                mBaiduMap.clear();  
                // 定义Maker坐标点  
                LatLng point = new LatLng(latitude, longitude);  
                // 构建MarkerOption,用于在地图上添加Marker  
                MarkerOptions options = new MarkerOptions().position(point)  
                        .icon(bitmap);  
                // 在地图上添加Marker,并显示  
                mBaiduMap.addOverlay(options);  
                //实例化一个地理编码查询对象  
                GeoCoder geoCoder = GeoCoder.newInstance();  
                //设置反地理编码位置坐标  
                ReverseGeoCodeOption op = new ReverseGeoCodeOption();  
                op.location(latLng);  
                //发起反地理编码请求(经纬度->地址信息)  
                geoCoder.reverseGeoCode(op);  
                geoCoder.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {  

                    @Override  
                    public void onGetReverseGeoCodeResult(ReverseGeoCodeResult arg0) {  
                        //获取点击的坐标地址  
                        address = arg0.getAddress();  
                                               }  

                    @Override  
                    public void onGetGeoCodeResult(GeoCodeResult arg0) {  
                    }  
                });  
            }  
        });  
    }  

    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
        mMapView.onDestroy();  
    }  

    @Override  
    protected void onResume() {  
        super.onResume();  
        // 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
        mMapView.onResume();  
    }  

    @Override  
    protected void onPause() {  
        super.onPause();  
        // 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
        mMapView.onPause();  
    }  
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值