首页 > 代码库 > 百度地图遇到的问题
百度地图遇到的问题
* 在地头上设置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;
}
});