百度地图开发问题随手记

来源:互联网 发布:帝国cms 头条 编辑:程序博客网 时间:2024/06/11 00:41



百度地图的百度地图

// 隐藏logo

View child = mMapView.getChildAt(1);
if (child != null && (child instanceof ImageView || child instanceof ZoomControls)){            
     child.setVisibility(View.INVISIBLE);           
}

//地图上比例尺        
mMapView.showScaleControl(false);
// 隐藏缩放控件

mMapView.showZoomControls(false);


LocationClient类

用来发起定位,添加取消监听

LocationClientOption类

用来设置定位方式,包括是否启用缓存,使用gps,时间间隔等。

BDLocation类

定位结果的封装,包含坐标和错误码等信息。

BDLocationListener接口类

获取定位结果

BDNotifyListener 类

作用:位置提醒接口类,用于设定位置提醒点,以及实现监听函数。这个应该是适用于地图。

1.这是获取经纬度是调用的一个公共方法,实现精度纬度的获取

/*** 获取精纬度* * @return*/public static void locate(Application application) {// 定位服务LocationClient mLocClient = ((Location)application).mLocationClient;LocationClientOption option = new LocationClientOption();option.setOpenGps(true); // 打开gps// option.setCoorType(mCoorEdit.getText().toString()); // 设置坐标类型option.setServiceName("com.baidu.location.service_v2.9");option.setPoiExtraInfo(true);option.setAddrType("all");option.setScanSpan(300); // 设置定位模式,小于1秒则一次定位;大于等于1秒则定时定位if (true) {option.setPriority(LocationClientOption.NetWorkFirst); // 设置网络优先} else {option.setPriority(LocationClientOption.GpsFirst); // 不设置,默认是gps优先}option.setPoiNumber(10);option.disableCache(true);mLocClient.setLocOption(option);mLocClient.start();//打开定位if (mLocClient != null && mLocClient.isStarted()) {mLocClient.requestLocation();}}




2,继承Application的Location类()


就是值得这个类中的一个mLocationClient变量

package com.example.asmack.location;import com.baidu.location.*;import android.app.Application;import android.util.Log;import android.widget.TextView;import android.os.Process;import android.os.Vibrator;public class Location extends Application {// 记录更新弹出框出现的次数public LocationClient mLocationClient = null;public MyLocationListenner myListener;public static String TAG = "LocTestDemo";@Overridepublic void onCreate() {mLocationClient = new LocationClient(this);myListener = new MyLocationListenner(this, mLocationClient);mLocationClient.registerLocationListener(myListener);super.onCreate();Log.d(TAG, "... Application onCreate... pid=" + Process.myPid());}}



3,继承BDLocationListener抽象方法的类MyLocationListenner

该类中需要继承两个方法

/** * 监听函数,又新位置的时候,格式化成字符串,输出到屏幕中 */public class MyLocationListenner implements BDLocationListener {private Context context;private LocationClient locationClient;public MyLocationListenner(Context context, LocationClient locationClient) {this.context = context;this.locationClient = locationClient;}@Overridepublic void onReceiveLocation(BDLocation location) {if (location == null)return;StringBuffer sb = new StringBuffer(256);sb.append("time : ");sb.append(location.getTime());sb.append("\nerror code : ");sb.append(location.getLocType());sb.append("\nlatitude : ");sb.append(location.getLatitude());sb.append("\nlontitude : ");sb.append(location.getLongitude());sb.append("\nradius : ");sb.append(location.getRadius());if (location.getLocType() == BDLocation.TypeGpsLocation) {sb.append("\nspeed : ");sb.append(location.getSpeed());sb.append("\nsatellite : ");sb.append(location.getSatelliteNumber());} else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {// sb.append("\n省:");// sb.append(location.getProvince());// sb.append("\n市:");// sb.append(location.getCity());// sb.append("\n区/县:");// sb.append(location.getDistrict());sb.append("\naddr : ");sb.append(location.getAddrStr());}String longitude = location.getLongitude() + "";String latitude = location.getLatitude() + "";String address = location.getAddrStr();System.out.println("MyLocationListener location " + "精度 = " + longitude+ "纬度 = " + latitude + "address = " + address);}public void onReceivePoi(BDLocation poiLocation) {if (poiLocation == null) {return;}StringBuffer sb = new StringBuffer(256);sb.append("Poi time : ");sb.append(poiLocation.getTime());sb.append("\nerror code : ");sb.append(poiLocation.getLocType());sb.append("\nlatitude : ");sb.append(poiLocation.getLatitude());sb.append("\nlontitude : ");sb.append(poiLocation.getLongitude());sb.append("\nradius : ");sb.append(poiLocation.getRadius());if (poiLocation.getLocType() == BDLocation.TypeNetWorkLocation) {sb.append("\naddr : ");sb.append(poiLocation.getAddrStr());}if (poiLocation.hasPoi()) {sb.append("\nPoi:");sb.append(poiLocation.getPoi());} else {sb.append("noPoi information");}Log.d("Location", sb.toString());}}

0 0
原创粉丝点击