BaiduMap

1、注册密钥:地址http://developer.baidu.com/map/

2、下载定位SDK,并导入SDK如图所示:

3.编写MyApplication类

编写MyApplication类,为了使用方便我们可以将实现定位的方法封装的Application组件中

封装下列方法

1、  获取定位信息——requestLocationInfo()

2、  通过广播发送位置信息——sendBroadCast()

3、  停止定位——stopLocationClient()

public class MyApplication extends Application{
    public LocationClient mLocationClient = null;
    public GeofenceClient mGeofenceClient;
    public MyLocationListenner myListener = new MyLocationListenner();
    public static String TAG = "MyApplication";
    private static MyApplication mInstance = null;
    @Override
    public void onCreate(){
        mInstance = this;
        mLocationClient = new LocationClient(this);
        /**
         * 项目的key,自己到官网申请 http://lbsyun.baidu.com/apiconsole/key
         */
        mLocationClient.setAK("你的应用Key");
        mLocationClient.registerLocationListener(myListener);
        mGeofenceClient = new GeofenceClient(this);
        super.onCreate();
        Log.d(TAG, "... Application onCreate... pid=" + Process.myPid());
    }

    public static  MyApplication  getInstance(){
        return mInstance;
    }

    /**
     * 停止定位
     */
    public void stopLocationClient(){
        if (mLocationClient != null && mLocationClient.isStarted()){
            mLocationClient.stop();
        }
    }

    /**
     * 发起定位
     */
    public void requestLocationInfo(){
        setLocationOption();
        if (mLocationClient != null && !mLocationClient.isStarted()){
            mLocationClient.start();
        }
        if (mLocationClient != null && mLocationClient.isStarted()){
            mLocationClient.requestLocation();
        }
    }

    /**
     *  设置百度地图的相关参数
     */
    private void setLocationOption(){
        LocationClientOption option = new LocationClientOption();
        option.setOpenGps(true); // 打开gps
        option.setCoorType("bd09ll"); // 设置坐标类型
        option.setServiceName("com.baidu.location.service_v2.9");
        option.setPoiExtraInfo(true);
        option.setAddrType("all");
        option.setPoiNumber(10);
        option.disableCache(true);
        mLocationClient.setLocOption(option);
    }

    /**
     * 监听函数,有更新位置的时候,格式化成字符串,输出到屏幕中
     */
    public class MyLocationListenner implements BDLocationListener
    {
        @Override
        public void onReceiveLocation(BDLocation location){
            if (location == null){
                sendBroadCast("定位失败!");
                return;
            }
            sendBroadCast(location.getAddrStr());
        }
        public void onReceivePoi(BDLocation poiLocation){
            if (poiLocation == null){
                sendBroadCast("定位失败!");
                return;
            }
            sendBroadCast(poiLocation.getAddrStr());
        }
    }

    /**
     * 得到发送广播
     * @param address
     */
    public void sendBroadCast(String address){
                stopLocationClient();
        Intent intent = new Intent(MainActivity.LOCATION_BCR);
        intent.putExtra("address", address);
        sendBroadcast(intent);
    }
}

4.主程序MainActivity
public class MainActivity extends Activity{
    public static String TAG = "LocTestDemo";
    private BroadcastReceiver broadcastReceiver;
    public static String LOCATION_BCR = "location_bcr";
    private Button locBtn;
    private TextView locInfo;
    private MyApplication application;
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        application=(MyApplication)super.getApplication();
        initialize();
        initializeViews();
        initializeListeners();
    }

    private void initialize(){
        registerBroadCastReceiver();//注册广播
    }

    private void initializeViews()
    {
        locBtn = (Button) findViewById(R.id.location);
        locInfo = (TextView) findViewById(R.id.location_info);
    }

    private void initializeListeners()
    {
        locBtn.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
                locInfo.setText("定位中...");
            //调用请求定位信息
            application.requestLocationInfo();
            }
        });
    }

    /**
     * 注册一个广播,监听定位结果,接受广播获得地址信息
     */
    private void registerBroadCastReceiver()
    {
        broadcastReceiver = new BroadcastReceiver(){
        public void onReceive(Context context, Intent intent){
            String address = intent.getStringExtra("address");
                locInfo.setText(address);
            }
        };
        IntentFilter intentToReceiveFilter = new IntentFilter();
        intentToReceiveFilter.addAction(LOCATION_BCR);
        registerReceiver(broadcastReceiver, intentToReceiveFilter);
    }
    @Override
    protected void onDestroy(){
        super.onDestroy();
        unregisterReceiver(broadcastReceiver);
    }
}

五。 AndroidManifest.xml配置信息
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.jereh.baidulocation"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    <application
        android:name="com.jereh.baidulocation.MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.jereh.baidulocation.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" >
            <intent-filter>
                <action android:name="com.baidu.location.service_v2.2" >
                </action>
            </intent-filter>
        </service>
    </application>

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    </uses-permission>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" >
    </uses-permission>
    <uses-permission android:name="android.permission.READ_LOGS" >
    </uses-permission>
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
</manifest>



时间: 2024-08-26 00:12:15

BaiduMap的相关文章

关于baidumap sdk 的开发(有点狗学)

需要注意的是: 1要手动建一个libs 文件夹,我之前直接从baiduMap 的samples 中拷贝过来,就不行 2拷贝 armeabi/ ibBaiduMapSDK_v3_3_0_15.soliblocSDK5.so 3 拷贝 BaiduLBS_Android.jar 4 如果Android Private Library 下面有BaiduLBS_Android.jar 则表示添加成功.

百度地图3.1.0(一)Hello BaiduMap

1:在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下 如图所示: 2:在AndroidManifest中添加开发密钥.所需权限等信息 1 <application 2 <meta-data 3 android:name="com.baidu.lbsapi.API_KEY" 4 android:value="开发者 key

baidumap 百度地图,实现多点之间的带方向路线图。

通过lastVisitAt判断时间先后. 通过三角函数验证角度 再由baidumap 会制线段 绘制三角箭头 比较难看…… 测试个人 因为框架引用baidu 有各种问题失败,为最快实现,以此页作一个独立的iframe 通过window.localStorage 实现数据传递. 父页代码 window.localStorage.jsondata=JSON.stringify(json.data); var iframe=$("#iframebaidumap"); iframe.attr(

02.(最新版)百度地图&#167;基础底图BaiduMap

转载请标明:http://blog.csdn.net/u012637501 一.基础地图SDK简介     目前百度地图SDK所提供的地图等级为3-19级,所包含的信息有建筑物.道路.河流.学校.公园等内容.所有叠加或覆盖到地图的内容,我们统称为地图覆盖物.如标注.矢量图形元素(包括:折线.多边形和圆等).定位图标等.覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的移动.百度地图SDK为广大开发者提供的基础地图和上面的各种覆盖物元素,具有一定的层级压盖关系,具体如下(从下至上的顺序)

baiduMap 显示所有的marker(在视野里显示所有的)

搞Android的,所以比较幸苦和累现在搞的app是关于百度地图的,因为要求要把所有覆盖物显示在一个视野...所以在网上找了很久,终于找打了方法 我引用的包是: 记录一下,其实不算很难.一个小点.翻了不少资料终于搞好了. 看代码: public void addTasksToBaiduMapAsMarker(final JsonArray taskJsionArray){ baiduMap.clear(); listOverlayOptions.clear(); addJsonArrayToLi

005.使用百度SDK写hello baidumap时,在布局xml文件中添加地图控件时;提示&#39;clickable&#39; attribute found, please also add &#39;focusable&#39; 错误

0.报错&提示信息: 'clickable' attribute found, please also add 'focusable'  A widget that is declared to be clickable but not declared to be focusable is not accessible via the keyboard. Please add the focusable attribute as well. 1.原因: 一个控件,如果没有定义focusable

获取经纬度之间两点间真实距离(适用于GoogleMap,BaiduMap,Amap等)

如何获取经纬度之间两点间真实距离(适用于GoogleMap,BaiduMap,Amap等) 目标:使用百度定位sdk开发实时移动距离计算功能,根据经纬度的定位,计算行驶公里数并实时刷新界面显示.大家都知道定位有三种方式:GPS .Wifi . 基站 .误差方面的话,使用GPS误差在10左右,Wifi则在20 - 300左右 ,而使用基站则误差在100 - 300左右的样子,因为在室内GPS是定位不到的,必须在室外,而我们项目的需求正好需要使用GPS定位,所以我们这里设置GPS优先.车,不可能在室

baidumap应用

需要在安卓平台利用baidumap SDK进行二次开发, 注册好,创建应用 利用jdk/bin里的keytool做Android SDK安全码 进入.android(参照下图):输入keytool -list -v -keystore debug.keystore ,密码是  android 包名: 原文地址:https://www.cnblogs.com/marszhw/p/10799428.html

BaiduMap 鼠标绘制矩形选框四个顶角坐标的获取

雪影工作室版权全部.转载请注明[http://blog.csdn.net/lina791211] 1.博文产生原因 在使用百度Map开放API进行开发的时候,遇到了一个需求,非常easy的一个需求. →用户须要在地图上画一个矩形,依据矩形的边界值查询数据(主要在卫星数据的时空检索上使用) 没有想到的是,我翻遍了百度Map的百度地图JavaScript API,愣是没有找到相关的操作.在度娘上问了一圈小伙伴,没发现有这个需求的. 真的伤心 2.实现机制 Step1:综合考虑现有需求,针对须要选择空

csharp: WebBrowser read baidumap

setpoint.html: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>行政区域工具</title> <script type="text/javascript" src="http://a