您的位置:首页 > 其它

获取百度地图 只显示当前定位

2015-10-31 00:25 351 查看
package com.example.mapdemo;

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.view.Menu;

import android.widget.Toast;

import com.baidu.location.BDLocation;

import com.baidu.location.BDLocationListener;

import com.baidu.location.LocationClient;

import com.baidu.location.LocationClientOption;

import com.baidu.mapapi.SDKInitializer;

import com.baidu.mapapi.map.BaiduMap;

import com.baidu.mapapi.map.MapStatusUpdate;

import com.baidu.mapapi.map.MapStatusUpdateFactory;

import com.baidu.mapapi.map.MapView;

import com.baidu.mapapi.map.MyLocationData;

import com.baidu.mapapi.model.LatLng;

public class MainActivity extends Activity

{

//private MapView mMapView;

// private BaiduMap mBaiduMap;

private Context context;

// 定位相关

private LocationClient mLocationClient;

private MyLocationListener mLocationListener;

private boolean isFirstIn = true;

private double mLatitude;

private double mLongtitude;



@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

// requestWindowFeature(Window.FEATURE_NO_TITLE);

// 在使用SDK各组件之前初始化context信息,传入ApplicationContext

// 注意该方法要再setContentView方法之前实现

SDKInitializer.initialize(getApplicationContext());

setContentView(R.layout.activity_main);

this.context = this;

initView();

// 初始化定位

initLocation();

// initMarker();





}



private void initLocation()

{

mLocationClient = new LocationClient(this);

mLocationListener = new MyLocationListener();

mLocationClient.registerLocationListener(mLocationListener);

LocationClientOption option = new LocationClientOption();

option.setCoorType("bd09ll");

option.setIsNeedAddress(true);

option.setOpenGps(true);

option.setScanSpan(1000);

mLocationClient.setLocOption(option);



}

private void initView()

{

// mMapView = (MapView) findViewById(R.id.id_bmapView);

// mBaiduMap = mMapView.getMap();



}

@Override

protected void onResume()

{

super.onResume();

// 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理

// mMapView.onResume();

}

@Override

protected void onStart()

{

super.onStart();

// 开启定位

// mBaiduMap.setMyLocationEnabled(true);

if (!mLocationClient.isStarted())

mLocationClient.start();

// 开启方向传感器

// myOrientationListener.start();

}

@Override

protected void onPause()

{

super.onPause();

// 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理

// mMapView.onPause();

}

@Override

protected void onStop()

{

super.onStop();

// 停止定位

// mBaiduMap.setMyLocationEnabled(false);

mLocationClient.stop();

// 停止方向传感器

// myOrientationListener.stop();

}

@Override

protected void onDestroy()

{

super.onDestroy();

// 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理

// mMapView.onDestroy();

}

@Override

public boolean onCreateOptionsMenu(Menu menu)

{

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

/*@Override

public boolean onOptionsItemSelected(MenuItem item)

{

switch (item.getItemId())

{

case R.id.id_map_common:

mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);

break;

case R.id.id_map_site:

mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);

break;

case R.id.id_map_traffic:

if (mBaiduMap.isTrafficEnabled())

{

mBaiduMap.setTrafficEnabled(false);

item.setTitle("实时交通(off)");

} else

{

mBaiduMap.setTrafficEnabled(true);

item.setTitle("实时交通(on)");

}

break;

case R.id.id_map_location:

centerToMyLocation();

break;

case R.id.id_map_mode_common:

mLocationMode = LocationMode.NORMAL;

break;

case R.id.id_map_mode_following:

mLocationMode = LocationMode.FOLLOWING;

break;

case R.id.id_map_mode_compass:

mLocationMode = LocationMode.COMPASS;

break;

case R.id.id_add_overlay:

addOverlays(Info.infos);

break;

default:

break;

}

return super.onOptionsItemSelected(item);

}*/

/**

* 添加覆盖物

*

* @param infos

*/

/* private void addOverlays(List<Info> infos)

{

mBaiduMap.clear();

LatLng latLng = null;

Marker marker = null;

OverlayOptions options;

for (Info info : infos)

{

// 经纬度

latLng = new LatLng(info.getLatitude(), info.getLongitude());

// 图标

options = new MarkerOptions().position(latLng).icon(mMarker)

.zIndex(5);

marker = (Marker) mBaiduMap.addOverlay(options);

Bundle arg0 = new Bundle();

arg0.putSerializable("info", info);

marker.setExtraInfo(arg0);

}

MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);

mBaiduMap.setMapStatus(msu);

}*/

/**

* 定位到我的位置

*/

/* private void centerToMyLocation()

{

LatLng latLng = new LatLng(mLatitude, mLongtitude);

MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);

mBaiduMap.animateMapStatus(msu);

}

*/

private class MyLocationListener implements BDLocationListener

{

@Override

public void onReceiveLocation(BDLocation location)

{

/*MyLocationData data = new MyLocationData.Builder()//

//.direction(mCurrentX)//

.accuracy(location.getRadius())//

.latitude(location.getLatitude())//

.longitude(location.getLongitude())//

.build();*/

// mBaiduMap.setMyLocationData(data);

// 设置自定义图标

/* MyLocationConfiguration config = new MyLocationConfiguration(

mLocationMode, true, mIconLocation);*/

// mBaiduMap.setMyLocationConfigeration(config);

// 更新经纬度

mLatitude = location.getLatitude();

mLongtitude = location.getLongitude();

if (isFirstIn)

{

LatLng latLng = new LatLng(location.getLatitude(),

location.getLongitude());

MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);

// mBaiduMap.animateMapStatus(msu);

isFirstIn = false;

Toast.makeText(context, location.getAddrStr(),

Toast.LENGTH_SHORT).show();

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: