public class MainActivity extends Activity {
private MapView mapView;
private LocationClient locationClient;
private double latitude,longitude;
private BaiduMap mBaiduMap;
private BDLocationListener locationListener = new BDLocationListener() {
@Override
public void onReceiveLocation(BDLocation location) {
latitude = location.getLatitude();
longitude = location.getLongitude();
MyLocationData locationData = new MyLocationData.Builder()
.accuracy(location.getRadius()).latitude(latitude).longitude(longitude).build();
mBaiduMap.setMyLocationData(locationData);
LatLng pt = new LatLng(latitude, longitude);
MapStatus mapStatus = new MapStatus.Builder()
.target(pt).zoom(18).build();
MapStatusUpdate statusUpdate = MapStatusUpdateFactory.newMapStatus(mapStatus);
mBaiduMap.setMapStatus(statusUpdate);
BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.location);
//MyLocationConfiguration config = new MyLocationConfiguration(locationClient, true, bitmap);
mapView.refreshDrawableState();
StringBuilder sb = new StringBuilder();
sb.append(location.getProvince())
.append(location.getCity()).append(location.getStreet());
Toast.makeText(getApplication(), sb.toString(), Toast.LENGTH_SHORT).show();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
//获取地图控件引用
mapView = (MapView) findViewById(R.id.mapView);
mBaiduMap = mapView.getMap();
locationClient = new LocationClient(getApplicationContext());
LocationClientOption option = new LocationClientOption();
option.setCoorType("bd09ll");
option.setLocationMode(LocationMode.Hight_Accuracy);
option.setScanSpan(5000);
option.setIsNeedAddress(true);
option.setOpenGps(true);
option.setNeedDeviceDirect(true);
locationClient.setLocOption(option);
locationClient.registerLocationListener(locationListener);
locationClient.start();
mBaiduMap.setMyLocationEnabled(true);
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
setLocation();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onDestroy() {
mapView.onDestroy();
locationClient.unRegisterLocationListener(locationListener);
locationClient.stop();
super.onDestroy();
}
private void setLocation(){
LatLng pt = new LatLng(latitude, longitude);
BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.location);
OverlayOptions option = new MarkerOptions()
.position(pt).icon(bitmap);
mBaiduMap.addOverlay(option);
}
定位
最新推荐文章于 2022-03-18 18:40:42 发布