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

来源:互联网 发布:如何分析问卷调查数据 编辑:程序博客网 时间:2024/06/05 19:56
    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 0
原创粉丝点击