手机百度地图 gps不能定位GPS定位不了怎么回事

BaiduMap初体验(三) 使用百度map定位功能 - 人工智能当前位置:& &&&BaiduMap初体验(三) 使用百度map定位功能BaiduMap初体验(三) 使用百度map定位功能&&网友分享于:&&浏览:0次BaiduMap初体验(三) 使用百度地图定位功能上一篇文章简单介绍了百度地图相关类的知识,让大家对百度地图的相关类有一定的了解,这篇文章带领大家去学习如何使用百度地图定位的功能。
上一篇:BaiduMap初体验(二) 认识百度地图常用类
在 BaiduMap初体验(一) 搭建百度地图的环境介绍了百度地图的详细配置,这里可以跳过。
定位功能实现大概分为4个步骤
1.添加使用相关权限。
android:name="android.permission.ACCESS_COARSE_LOCATION"&&
android:name="android.permission.ACCESS_FINE_LOCATION"&&
android:name="android.permission.READ_PHONE_STATE"&&
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"&&
2.注册百度地图定位的服务。
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" &
android:name="com.baidu.location.service_v2.2" &
3.构建地图定位的客户端
public class LocationApplication extends Application {
public LocationClient mLocationC
public MyLocationListener mMyLocationL
public Vibrator mV
OnGetDBLocation mOnGetDBL
public void onCreate() {
super.onCreate();
mLocationClient = new LocationClient(this.getApplicationContext());
mMyLocationListener = new MyLocationListener();
mLocationClient.registerLocationListener(mMyLocationListener);
mVibrator =(Vibrator)getApplicationContext().getSystemService(Service.VIBRATOR_SERVICE);
* 实现实时位置回调监听
public class MyLocationListener implements BDLocationListener {
public void onReceiveLocation(BDLocation location) {
MyLocation pMyLocation = new MyLocation();
StringBuilder sb = new StringBuilder(256);
pMyLocation.setTime(location.getTime());
pMyLocation.setErrorcode(location.getLocType());
pMyLocation.setLatitude(location.getLatitude());
pMyLocation.setLontitude(location.getLongitude());
pMyLocation.setRadius(location.getRadius());
if (location.getLocType() == BDLocation.TypeGpsLocation){
sb.append("\nspeed : ");
sb.append(location.getSpeed());
sb.append("\nsatellite : ");
sb.append(location.getSatelliteNumber());
sb.append("\nheight : ");
sb.append(location.getAltitude());
sb.append("\ndirection : ");
sb.append(location.getDirection());
sb.append("\naddr : ");
sb.append(location.getAddrStr());
sb.append("\ndescribe : ");
sb.append("gps定位成功");
Log.d("skyfin", "gps定位成功");
Log.d("skyfin",sb.toString());
} else if (location.getLocType() == BDLocation.TypeNetWorkLocation){
pMyLocation.setAddr(location.getAddrStr());
pMyLocation.setDescribe("网络定位成功");
} else if (location.getLocType() == BDLocation.TypeOffLineLocation) {
pMyLocation.setAddr(location.getAddrStr());
pMyLocation.setDescribe("离线定位成功,离线定位结果也是有效的");
} else if (location.getLocType() == BDLocation.TypeServerError) {
pMyLocation.setAddr(location.getAddrStr());
pMyLocation.setDescribe("服务端网络定位失败,,会有人追查原因");
} else if (location.getLocType() == BDLocation.TypeNetWorkException) {
pMyLocation.setAddr(location.getAddrStr());
pMyLocation.setDescribe("网络不同导致定位失败,请检查网络是否通畅");
} else if (location.getLocType() == BDLocation.TypeCriteriaException) {
pMyLocation.setAddr(location.getAddrStr());
pMyLocation.setDescribe("无法获取有效定位依据导致定位失败,一般是由于手机的原因,处于飞行模式下一般会造成这种结果,可以试着重启手机");
pMyLocation.setLocationdescribe(location.getLocationDescribe());
if (location.getPoiList().size()!=0) {
pMyLocation.setList(location.getPoiList());
mOnGetDBLocation.get(pMyLocation);
public static interface OnGetDBLocation{
void get(MyLocation location);
public void setDBLocationListener(OnGetDBLocation dbLocationListener){
this.mOnGetDBLocation = dbLocationL
4.添加定位的application
&application
android:name=".app.LocationApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"&
5.配置定位信息
private LocationClientOption initLocationClientOption() {
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
option.setCoorType("bd09ll");//可选,默认gcj02,设置返回的定位结果坐标系,
option.setScanSpan(0);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
option.setIsNeedAddress(true);//可选,设置是否需
地址信息,默认不需要
option.setOpenGps(true);//可选,默认false,设置是否使用gps
option.setPriority(LocationClientOption.GpsOnly);
option.setLocationNotify(true);//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
option.setIgnoreKillProcess(true);//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
option.setEnableSimulateGps(true);//可选,默认false,设置是否需要过滤gps仿真结果,默认需要
option.setIsNeedLocationDescribe(true);//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
option.setIsNeedLocationPoiList(true);//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
return option;
6.最后显示在地图上
public class LocationActivity extends AppCompatActivity {
private LocationClient mLocationC
LocationClientOption mLocationClientOption = null;
private Button mStartLocationB
private MapView mMapView = null;
private MyLocationConfiguration.LocationMode mCurrentMode = PASS;
BaiduMap mBaiduMap = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_location);
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
mLocationClient = ((LocationApplication) getApplication()).mLocationC
mLocationClientOption = initLocationClientOption();
mLocationClient.setLocOption(mLocationClientOption);
mStartLocationBtn = (Button) findViewById(R.id.start_btn);
mStartLocationBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (mStartLocationBtn.getText().toString().equals("开始定位")){
mLocationClient.start();
((LocationApplication)getApplication()).setDBLocationListener(new LocationApplication.OnGetDBLocation() {
public void get(MyLocation location) {
mBaiduMap.setMyLocationEnabled(true);
MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
.direction(100).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
mBaiduMap.setMyLocationData(locData);
MyLocationConfiguration config = new MyLocationConfiguration(mCurrentMode, true, null);
mBaiduMap.setMyLocationConfigeration(config);
mStartLocationBtn.setText("正在定位");
mLocationClient.stop();
mStartLocationBtn.setText("开始定位");
private LocationClientOption initLocationClientOption() {
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
option.setCoorType("bd09ll");
option.setScanSpan(0);
option.setIsNeedAddress(true);
option.setOpenGps(true);
option.setPriority(LocationClientOption.GpsOnly);
option.setLocationNotify(true);
option.setIgnoreKillProcess(true);
option.setEnableSimulateGps(true);
option.setIsNeedLocationDescribe(true);
option.setIsNeedLocationPoiList(true);
public void onDestroy() {
super.onDestroy();
mMapView.onDestroy();
public void onResume() {
super.onResume();
mMapView.onResume();
public void onPause() {
super.onPause();
mMapView.onPause();
dome下载地址:/locojyw/BaiduMapAPI.git
版权声明:本文为博主原创文章,未经博主允许不得转载。
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有当前【安卓手机】
全部安卓手机安卓平板安卓电视iPhoneiPad其他
当前位置:>>>百度地图安卓版
如果您正把手机连着电脑,欢迎点击
百度地图类型:最新版:7.5.3.1
百度地图类型:
为什么下载离线包不能一个一个城市的下,整个省都下下来浪费内存,也用不到那么多,建议改善
非常棒,方便实用
太坑爹了!导航老走弯路!不走车少的路!!!!大数据吃屎????
百度早点完蛋,只要付钱,地名在地图上都可以改是吧。
尼玛,在合肥瞎导航,跑了许多冤枉路,百度地图真他妈的差劲
热门排行榜
34万+人在玩70万+人在玩88万+人在玩105万+人在玩187万+人在玩160万+人在玩
百度地图app相关推荐
发现该应用有下载安装使用错误或恶意扣费携带病毒,请
版权所有 京ICP备号-5
京公网安备 50 备大小:31.86 MB
鹿晗代言百度地图啦~从此与你,一“鹿”相伴。
用百度地图,快速定位你的位置,探索周边
大小:34.19 MB
用百度地图,快速定位你的位置,探索周边美食娱乐。
不但可以找位置,还能帮你“到那去“
大小:39.9 MB
【基本功能介绍】
用百度地图,快速定位你的位置,探索周边美食娱乐。
不但可以找位置,还
大小:29.7 MB
用百度地图,快速定位你的位置,探索周边美食娱乐。
不但可以找位置,还能帮你“到那去“
大小:18.58 MB
百度地图关注您的生活,为您呈现不一样的生活地图,团购优惠信息丰富实惠,周边生活数据更加
大小:34 MB
百度地图,不仅拥有强大的路线查询及规划能力,支持实时路况、离线收藏,超炫3D及卫星图。还
大小:31.47 MB
【基本功能介绍】
用百度地图,快速定位你的位置,探索周边美食娱乐。
不但可以找位置,还
大小:11.01 MB
【软件介绍】
百度地图关注您的生活,为您呈现不一样的生活地图,团购优惠信息丰富实惠,周
大小:43.88 MB
【基本功能介绍】
用百度地图,快速定位你的位置,探索周边美食娱乐。
不但可以找位置,还
大小:48 MB
5亿人都在用的百度地图
【功能介绍】
超全超准道
优步、专车、顺风车随叫随到手机地图,
应用相关文章
大家都在玩
热门安卓应用
穿越火线手机版
爱奇艺视频
360手机游戏大厅
最近浏览过的应用&&|&&责编:刘菲菲
1附近的服务信息  百度是当前中国用户手机上使用的比较多的一款地图,但现在的应用功能越来越多,刚上手的用户眼睛都看花了。所以我们今天接将向大家介绍百度手机地图的基本用法,希望能帮助大家尽快的上手。这次我们依照的是最新的百度手机地图Android 4.7.0版。附近的服务信息  打开应用我们首先看到的就是地图界面,左上角还有两个按钮,上面一个是实时路况的开关,下面一个则是卫星图、平面图、3D图层等的切换。&实时路况与图层  重点到下面的一排功能键,我们一一介绍 。首先是“附近”,,点击进去后看到的是我们目前附近的各类生活服务位置信息,比如美食、酒店、娱乐、公交、银行等,非常的实用。&附近服务信息  点击任意一个我们看到的是一整个分类的列表,有网友的评分,如果有团购信息也会显示出来。点进具体的店面我们可以看到更多的内容,包括电话、图片等等,当然还有最重要的地图。&详细店面信息  第二个搜索键没什么好说的,就是直接搜索我们要去的地点,不过软件还是给出了常见的分类来辅助,还支持语音输入。&搜索  搜索支持云联想,而且搜出来之后还会在地图上给出简单的信息。2路线规划设置路线规划设置  路线功能应该是我们用的比较多的部分,他可以帮助我们规划我们的行程路线。进去之后首先是选择坐公交、自驾车还是步行。然后输入起点和终点,如果是要使用自己当前的位置,只要点击前面的加好,然后选择使用“我的位置”就可以了。&选择起始地点  这里输了输入文字,我们还能通过语音输入,甚至直接在地图上点选地址  当然起点和终点还可以互换,然后点击搜索就好了。这时候我们就会看到规划的路线,我们可以自己选择不同的方案,有“较快捷”、“少换乘”、“少步行”和“不坐地铁”四种模式。&公交方案和步行路线  在这个页面我们还能看到一个“家”的设置,点击进去后我们能够将“家”和“公司/学校”设置成常用地址。这样不管在什么时候我们都能找到回去的路了。设置家和公司学校  试想,当我们在出门在外面时要回家或回公司,不管在哪里,只要点击“我的位置”和“家”或“公司”,立马就能找到回去的路线图,这是多么方便。3驾车导航和小工具驾车导航和小工具  百度还为驾车用户提供了导航功能,点击“导航”之后,我们同样可以通过文字输入、语音输入和地图点选三种方式设置目的地,当然还有“家”和“公司”。&选择导航目的地  输入完地址我们就进入导航模式了,地图会带你进行驾车路线,在交规和路况允许的情况下行驶,并伴有语音提示。在这里我们还能看到路程和预计花费的时间。&导航界面  点击右下角的三个点,我们还可以设置中转点或重新设置终点,还能获取返程信息、路线详情和卫星地图。  在设置中我们可以进行更多的操作,包括导航时屏幕常亮、日夜模式切换、超速语音提醒、电子眼语音提示等等。&导航设置  最后在“我的”中,我们可以浏览收藏的地址,离线地图,测量几个地点之间的距离等等。在工具包中我们还能找到地铁的路线图和位置共享功能。&我的工具箱  百度地图作为中国使用率最高的地图服务一直以来都为PC用户喜爱,现在百度手机地图登录手机给用户最大的感觉就是习惯,所以我们才推出了这篇教程,希望对大家有所帮助。尤其是新版百度手机地图中的家的功能,实在是很贴心。热门点击:
4334956996145071260839009160010648

我要回帖

更多关于 安卓百度地图gps定位 的文章

 

随机推荐