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

    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();  
    }  
}  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Echarts 是一个开源的可视化图表库,它提供了丰富的图表类型和交互能力。其中,百度在线地图是 Echarts 支持的一种地图类型,可以通过 Echarts 来展示和操作百度地图数据。 要在百度在线地图中实现自定义标点点击弹出图片,我们可以按照以下步骤进行: 1. 获取地图数据:首先,我们需要获取百度地图的数据,可以通过百度地图开放平台的接口来获取相关数据,如地点的经纬度、图片的链接等。 2. 准备 Echarts 配置:在准备初始化 Echarts 图表的配置项时,我们需要指定地图的类型为百度在线地图,并将获取的地图数据填入到配置项中。 3. 自定义标点:通过配置项中的 series 数据项,我们可以自定义地图上的标点。可以在 series 数据项中设置自定义的符号样式、位置和弹出图片等信息。 4. 添加点击事件:在配置项中,可以为标点添加点击事件的回调函数。当用户点击某个标点时,弹出对应图片的内容。 5. 实例化 Echarts 图表:最后,将准备好的配置项传入 Echarts 的实例化函数中,即可在页面上展示百度在线地图,并实现自定义标点点击弹出图片的功能。 总结起来,利用 Echarts 的百度在线地图功能,我们可以通过自定义标点并添加点击事件的方式,轻松实现点击某个标点弹出图片的效果。这样可以使地图更加丰富和互动,提升用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值