百度地图的常用功能的实现代码

本文介绍如何使用百度地图SDK进行地图标注与定位操作。包括设置Marker标记、更新地图显示位置、通过关键字搜索地点并标注等功能。同时展示了如何响应地图点击事件及添加Marker。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
* 在地头上设置Marker标记
*/
public void setMarker(LatLng point){
setLatitude.setText(point.latitude+"");
    setLongitude.setText(point.longitude+"");
    setName.setText("");
        //在此处理点击事件  
    //构建Marker图标  
    BitmapDescriptor bitmap = BitmapDescriptorFactory  
       .fromResource(R.drawable.icon_gcoding);  
    //构建MarkerOption,用于在地图上添加Marker  
    OverlayOptions option = new MarkerOptions()  
       .position(point)  
       .icon(bitmap);  
    //在地图上添加Marker,并显示  
    mBaiduMap.clear();
    mBaiduMap.addOverlay(option); 
}




/**
*设置地图显示到指定位置
**/
public void setNowLocation(LatLng point){
//定义地图状态
        MapStatus mMapStatus = new MapStatus.Builder()
        .target(point)
        //.zoom(10)
        .build();
        //定义MapStatusUpdate对象,以便描述地图状态将要发生的变化




        MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
        //改变地图状态
        mBaiduMap.setMapStatus(mMapStatusUpdate);  
}

//输入城市和关键字找位置
PoiSearch mPoiSearch = PoiSearch.newInstance();
OnGetPoiSearchResultListener poiListener = new OnGetPoiSearchResultListener(){  
public void onGetPoiResult(PoiResult result){  
//获取POI检索结果
Log.d("TAG", "PoiResult"+result.getAllPoi().get(0).location.latitude);
Log.d("TAG", "PoiResult"+result.getAllPoi().get(0).location.longitude);
//将位置定位到此位置(上面方法)
setNowLocation(result.getAllPoi().get(0).location);
//将第一个设置为选择的位置(上面方法)
setMarker(result.getAllPoi().get(0).location);

}  
public void onGetPoiDetailResult(PoiDetailResult result){  
//获取Place详情页检索结果  
Log.d("TAG", "PoiDetailResult"+result);
}  
};  
//设置POI检索监听者;
mPoiSearch.setOnGetPoiSearchResultListener(poiListener);  
//发起检索请求;
// PoiCitySearchOption pso=new PoiCitySearchOption();
// pso.city(city);
// pso.keyword(arg0)

mPoiSearch.searchInCity((new PoiCitySearchOption())  
.city(city)   
.keyword("宾馆")   
.pageNum(10));  

//在地图上点击某位置,在此添加一个标注
mBaiduMap=mMapView.getMap();
       
        mBaiduMap.setOnMapClickListener(new OnMapClickListener() {  
            public void onMapClick(LatLng point) {  
            collectPoint=point;
            Log.d("TAG", "点击的位置"+point.toString());
            setMarker(point);//(上面的加标注的方法)
            }  
            public boolean onMapPoiClick(MapPoi poi) {  
                //在此处理底图标注点击事件  
            Log.d("TAG", "点击的位置poi"+poi.toString());
                return false;  
            }  
        });  
原转网址:http://blog.csdn.net/xiaoyi_tdcq/article/details/32133349


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值