定位
2015-07-13 16:30
344 查看
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); }
相关文章推荐
- 如何判断EasyUi中treegride的某一节点是不是叶子节点
- HTML5 实现橡皮擦的擦除效果
- PHP 随手记
- [TJOI2013][BZOJ3174] 拯救小矮人
- Office 2007的照相机功能增加
- cocos2dx之物理引擎
- wordpress博客安装redis缓存
- Json解析字符串的类型总结--IOS
- Mongodb开启与关闭
- iOS设计模式-抽象工厂
- ASP.NET AJAX
- RPC状态机执行过程
- hdu1852 快速模幂
- 剑指off-递归求1到n的和
- MQX驱动
- EL表达式 (详解)
- C++实现python标准库中的Counter
- device eth0 does not seem to be present
- Maven相关
- git使用