在前面的博客中少写了,点击添加覆盖物。
这里将说滑动地图后获取地图的中心,
搜获完成后,点击任何一个搜索的位置将地图当前的状态变成呢个地址的位置上
点击添加覆盖物
/**
* @添加覆盖物 点击覆盖物监听
*/
private void addOverlay() {
mBaiduMap.setOnMapClickListener(new BaiduMap.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;
System.out.println("latitude=" + latitude + ",longitude=" + longitude);
//先清除图层
mBaiduMap.clear();
// 定义Maker坐标点
LatLng point = new LatLng(latitude, longitude);
// 构建MarkerOption,用于在地图上添加Marker
MarkerOptions options = new MarkerOptions().position(point)
.icon(mCurrentMarker);
// 在地图上添加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();
Log.e("[address]====", address);
}
@Override
public void onGetGeoCodeResult(GeoCodeResult arg0) {
}
});
double m = calculate(myLatLng, point);
Log.e("距离距离:", m + "");
}
});
}
滑动监听
/**
* 地图滑动监听
*/
public void statusChange(){
mBaiduMap.setOnMapStatusChangeListener(new BaiduMap.OnMapStatusChangeListener() {
@Override
public void onMapStatusChangeStart(MapStatus mapStatus) {
}
@Override
public void onMapStatusChange(MapStatus mapStatus) {
}
@Override
public void onMapStatusChangeFinish(MapStatus mapStatus) {
LatLng latLng = mapStatus.target;
//实例化一个地理编码查询对象
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) {
}
});
}
});
}
改变地图状态,
myLatLng = new LatLng(latitude, longitude);
//定义MapStatusUpdate对象,以便描述地图状态将要发生的变化
MapStatusUpdate mMapStatus = MapStatusUpdateFactory.newLatLng(myLatLng);
//改变地图状态将这个坐标设为中心点
mBaiduMap.animateMapStatus(mMapStatus);
这篇博客介绍了如何在百度地图v3.5中实现点击地图添加覆盖物,并在滑动地图后动态获取地图的中心点。同时,当用户点击搜索结果中的任一位置时,地图会更新为该地址的中心,提供流畅的地图交互体验。
2661

被折叠的 条评论
为什么被折叠?



