定位


//在MainActivity里面


package com.bawei.locationone;

import com.baidu.location.Address;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.LocationClientOption.LocationMode;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;


public class MainActivity extends Activity {

    public LocationClient mLocationClient = null;
    public BDLocationListener myListener = new MyLocationListener();
    private TextView tv_place;
    private Button location_place;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        mLocationClient = new LocationClient(getApplicationContext()); // 声明LocationClient类
         mLocationClient.registerLocationListener(myListener);
         
         tv_place=(TextView)findViewById(R.id.tv_place);
         location_place=(Button)findViewById(R.id.location_place);
         location_place.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View arg0) {
                initLocation();
                
            }
        });
    }

    protected void initLocation() {
        LocationClientOption option = new LocationClientOption();
        option.setLocationMode(LocationMode.Hight_Accuracy);// 可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
        option.setCoorType("bd09ll");// 可选,默认gcj02,设置返回的定位结果坐标系
        int span = 1000;

        option.setScanSpan(span);// 可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
        option.setIsNeedAddress(true);// 可选,设置是否需要地址信息,默认不需要
        option.setOpenGps(true);// 可选,默认false,设置是否使用gps
        option.setLocationNotify(true);// 可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
        option.setIsNeedLocationDescribe(true);// 可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
        option.setIsNeedLocationPoiList(true);// 可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
        option.setIgnoreKillProcess(false);// 可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
        option.SetIgnoreCacheException(false);// 可选,默认false,设置是否收集CRASH信息,默认收集
        option.setEnableSimulateGps(false);// 可选,默认false,设置是否需要过滤gps仿真结果,默认需要
        mLocationClient.setLocOption(option);
        mLocationClient.start();
        
    }

    public class MyLocationListener implements BDLocationListener {
        @Override
        public void onReceiveLocation(BDLocation location) {
            String city = location.getCity();
            String district = location.getDistrict();
            String street = location.getStreet();
            Address address = location.getAddress();
            Log.i("Main", address.toString());
            
            tv_place.setText(city + "---" + street+" "+district);
        }
    }
    
}


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Xml文件

<Button
        android:id="@+id/location_place"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="GPS定位"
        />

    <TextView
        android:id="@+id/tv_place"
        android:layout_below="@id/location_place"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         />


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

配置文件

<!-- 这个权限用于进行网络定位 -->

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
    </uses-permission>

    <!-- 这个权限用于访问GPS定位 -->

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
    </uses-permission>

    <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
    </uses-permission>

    <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>

    <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->

    <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" />

    <!-- SD卡读取权限,用户写入离线定位数据 -->

    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" >
    </uses-permission>


 
        <meta-data
            android:name="com.baidu.lbsapi.API_KEY"
            android:value="MvjkSNVUgwhN5fcws2iqHYqTI1P2DAG8" />

        <service
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote" >
        </service>



阅读更多
想对作者说点什么? 我来说一句

google定位

2017年09月25日 32.53MB 下载

车牌定位 车牌定位 车牌定位

2010年04月09日 1.9MB 下载

光电鼠标

2011年07月22日 1.07MB 下载

multiCcL特征码定位

2010年04月10日 40KB 下载

特征码定位工具可以定位特征码

2011年03月05日 477KB 下载

手机定位app

2015年11月15日 1.66MB 下载

js锚点定位

2018年02月05日 36KB 下载

CHAN算法 不错的定位算法

2011年08月12日 846KB 下载

没有更多推荐了,返回首页

不良信息举报

定位

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭