2024年4月16日发(作者:)

Android百度地图定位

需求:(和前面的google定位(标题为:定时器timer…)需求一致)

设置上午(am)8:00-----12:00 每隔3分钟提交一次位置信息(经纬度)

设置下午(pm)13:00-----22:00 每隔4分钟提交一次位置信息(经纬度)

时间间隔是可以后台手动设置的

需要 ,locSDK_

告诫:网上很多例如android 基于百度地图api获取经纬度的文章里面用的是(如下代码)对

我的需求没用,定位的时间完全不准确,例如1分钟上传一次,结果相差30s左右,才得到数据而

且不是固定的。

错误的代码(至少对于我的需求是错的),感觉这方法不好

大体的代码是这样的:

/**

* 创建Activity(继承ivity)

*/

public class LocationActivity extends MapActivity implements LocationListener {

privateBMapManagermapManager;

privateMKLocationManagermLocationManager = null;

privateTextViewlatText;

privateTextViewlonText;

@Override

public void onCreate(Bundle savedInstanceState) {

te(savedInstanceState);

setContentView();

latText = (TextView) findViewById();

lonText = (TextView) findViewById();

// 初始化MapActivity

mapManager = new BMapManager(getApplication());

// init方法的第一个参数需填入申请的API Key

("C66C0501DA6957C42543AE38F5D540", null);

pActivity(mapManager);

mLocationManager = ationManager();

// 注册位置更新事件

tLocationUpdates(this);

// 使用GPS定位

Provider((int) _GPS_PROVIDER);

}

/**

* 当位置发生变化时触发此方法

*

* @param location 当前位置

*/

public void onLocationChanged(Location location) {

if (location != null) {

// 显示定位结果

t("当前经度:" + gitude());

t("当前纬度:" + itude());

}

}

}

我的代码

闹钟定时器启动service:

publicclassLocationServiceextends Service

@Override

publicvoidonCreate() {

tance().addService(this);

te();

spPreferences = getSharedPreferences("PHONE",

MODE_PRIVATE);

tmpph = ing("phone", "");

locationClient =

newLocationClient();

LocationClientOption option =