百度地图定位

//导入所有的jar包

<com.baidu.mapapi.map.MapView
        android:id="@+id/bmapView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true" />

package com.ce.fragment;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

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.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.model.LatLng;
import com.ce.activity.R;

public class F2 extends Fragment {
    private MapView mMapView;
    private BaiduMap mBaiduMap;
    private LocationClient mLocClient;
    boolean isFirstLoc = true; // 是否首次定位
    MyLocationListenner listenner = new MyLocationListenner();

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        SDKInitializer.initialize(getActivity().getApplicationContext());

View view = View.inflate(getActivity(), R.layout.f2, null);
        mMapView = (MapView) view.findViewById(R.id.bmapView);
        mBaiduMap = mMapView.getMap();

// 开启定位图层
        mBaiduMap.setMyLocationEnabled(true);
        // 定位初始化
        mLocClient = new LocationClient(getActivity());
        mLocClient.registerLocationListener(listenner);
        LocationClientOption option = new LocationClientOption();
        option.setOpenGps(true); // 打开gps
        option.setCoorType("bd09ll"); // 设置坐标类型
        option.setScanSpan(1000);
        mLocClient.setLocOption(option);
        mLocClient.start();
        return view;
    }

public class MyLocationListenner implements BDLocationListener {

public void onReceiveLocation(BDLocation location) {

// map view 销毁后不在处理新接收的位置
            if (location == null || mMapView == null) {
                return;
            }
            MyLocationData locData = new MyLocationData.Builder()
                    .accuracy(location.getRadius())
                    // 此处设置开发者获取到的方向信息,顺时针0-360
                    .direction(100).latitude(location.getLatitude())
                    .longitude(location.getLongitude()).build();

mBaiduMap.setMyLocationData(locData);
            if (isFirstLoc) {
                isFirstLoc = false;
                LatLng ll = new LatLng(location.getLatitude(),
                        location.getLongitude());
                MapStatus.Builder builder = new MapStatus.Builder();
                builder.target(ll).zoom(18.0f);
                mBaiduMap.animateMapStatus(MapStatusUpdateFactory
                        .newMapStatus(builder.build()));
            }
        }
    }

@Override
    public void onPause() {
        mMapView.onPause();
        super.onPause();
    }

@Override
    public void onResume() {
        mMapView.onResume();
        super.onResume();
    }

@Override
    public void onDestroy() {
        // 退出时销毁定位
        mLocClient.stop();
        // 关闭定位图层
        mBaiduMap.setMyLocationEnabled(false);
        mMapView.onDestroy();
        mMapView = null;
        super.onDestroy();
    }

}

时间: 2024-12-09 05:23:45

百度地图定位的相关文章

Android利用百度地图定位

百度地图照着百度的教程做的总是出现报错 请帮我看看错误在那 2013-12-13 15:16168海军 | 分类:百度地图 | 浏览1252次 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.map/com.example.map.MainActivity}: android.view.InflateException: Binary XML file line #11: Error i

百度地图定位记录

百度地图是我们做开发要经经常使用到的,在天朝.我们望谷歌而兴叹! !! 首先我们须要从百度地图API下载相应的API  JAR  以及SO文件,防止百度 官网抽风,俺机智的把里面的东西先所有下载出来给出下载链接例如以下: 百度地图API及工具下载地址 官网事实上以及给出了完整的案列以及开发文档,可是假设照搬的话还是不能成功的. 前面配置啥的还是看官网吧. 给出链接 http://developer.baidu.com/map/index.php   方便伸手党. 以下贴出我的代码: 点击下载百度

Android百度地图定位demo

AS写的百度地图定位demo 版本V6.0.5 先上效果图     版权声明:本文为博主原创文章,未经博主允许不得转载.

微信企业号开发:微信考勤百度地图定位,错误修正

在使用百度地图进行微信考勤时,遇到很多问题,尤其是定位问题,我知道定位有偏差,但使用百度地图,几十次后,偶尔一次会错的离谱,例如直接就定位到了外省,例如我一直在西安,一次定位到了天津,一次定位到了石家庄,我不知道为什么会这样.偏差几千米还能理解,可偏差几百公里就是在让人不能理解了.是因为我用的百度API是免费的吗?当然出现的次数不多,一般情况下,四五十次,会偶尔出现一两次这么离谱的偏差. 实在找不到原因,也不能是缓存,因为我没有去过石家庄,天津.没办法,但这个问题,又不能不解决,于是只能把四种计

IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息

IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息 /**当获取到定位的坐标后,回调函数*/ - (void)didUpdateBMKUserLocation:(BMKUserLocation *)userLocation{ BMKCoordinateRegion region; region.center.latitude  = userLocation.location.coordinate.latitude; region.center.longitude = userLoca

微信企业号开发:微信考勤百度地图定位二

使用微信考勤百度地图定位中的方法定位,可以定位到一个具体的位置某省某市某区某路某号,总是让人感觉显示不是很友好,如果直接显示,软件园,科技园之类的是不是更好呢?于是查了一下百度地图的相关文档,其实也很简单.百度有附近的功能,还有地址解析的功能,都可以实现. 例如我就是用了Geocoder服务,实现了需要的效果. 核心代码: var map = new BMap.Map("allmap"); var circle = new BMap.Geolocation(); circle.getC

Android 百度地图定位(手动+自动) 安卓开发教程

近由于项目需要,研究了下百度地图定位,他们提供的实例基本都是用监听器实现自动定位的.我想实现一种效果:当用户进入UI时,不定位,用户需要定位的时候,自己手动点击按钮,再去定位当前位置.  经过2天研究和咨询,找到了解决方案,在此备忘一下. 注意:定位使用真机才能够真正定位:模拟器的话,在DDMS中的Emulator Control中,选择Manual,下面单选按钮选择Decimal,然后填写经纬度,send后,再点击定位我的位置按钮,就能定位了(这应该算是固定定位,哈哈...). 1.第一步当然

Android百度地图定位

说到百度地图,现在这个时候应该都是众说周知了吧,多的话不扯了,直接奔向主题. 接入百度地图api必须申请key,这里申请key就不用说了,官方文档上面有介绍如何去申请key. 这里使用的百度地图定位是4.2的版本,api是3.1.1版本.如果申请好了key,那么就可以进入编码阶段了,具体实现如下: 1.引入百度地图相关jar包及armeabi目录到libs目录中 2.在项目的AndroidManifest.xml文件中配置相关信息 配置权限 <uses-permission android:na

【MUI】百度地图定位功能

博主最近进行一款APP开发,需要用到定位功能,经过一番折腾,终于搞定,不废话,代码如下 mui.plusReady(function() { var longitude, latitude; //var map = new BMap.Map("container"); // navigator.geolocation.getCurrentPosition(function(position) { // longitude = position.coords.longitude; //

ios 百度地图 定位

首先去下载百度地图的SDK 这是我的百度地图版本和需要导入的库文件 接下来是一些设置: app.h #import <UIKit/UIKit.h> #import <CoreLocation/CoreLocation.h> #import "BMapKit.h" @interface AppDelegate : UIResponder <UIApplicationDelegate> { UINavigationController *navigati