定位

原创 2016年06月01日 14:57:57


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



看完这个,css中position的绝对定位相对定位就懂了

我们先来看看CSS3 Api中对position属性的相关定义: static:无特殊定位,对象遵循正常文档流。top,right,bottom,left等属性不会被应用。 relative:对...
  • cyyax
  • cyyax
  • 2016年01月29日 14:32
  • 15500

openGPS.cn - 基于ip的定位技术分享,高精度IP定位

利用业余时间自己做了个网站,集成了几个第三方数据源,对比IP地址查询的功能: 普通IP定位:https://www.opengps.cn/Data/IP/IPSearch.aspx 高精度IP定位:h...
  • cuitang1031
  • cuitang1031
  • 2016年10月03日 12:21
  • 26622

android 的三种定位方式

Android 定位大致分为三大类:GPS定位;Network定位;AGPS定位。而Network又细分为WIFI定位和基站定位。下面详细讲解每种定位:   Android GPS:需要GPS硬件支...
  • luosiye312
  • luosiye312
  • 2016年01月22日 15:34
  • 23430

CSS清除浮动和定位

1.原来在一行中的两个块,会因为浏览器窗口的大小改变而改变其原来的位置(变成多行),浏览器窗口宽度不够容纳解决方法:加个父div,并且设置宽度.father {width:500px;height:3...
  • jethai
  • jethai
  • 2016年08月28日 14:05
  • 3037

使用三边定位算法进行室内定位

使用超宽带进行室内定位时,一般是通过测量时间来计算标签到基站的距离,通过多个标签到基站的距离,以及基站的实际物理坐标,就可以计算出标签所在的三维坐标. 这里我假设已经使用超宽带信号(实际上采用开发板...
  • huangzhichang13
  • huangzhichang13
  • 2017年07月25日 15:58
  • 1831

自己动手 IBeacon 室内定位 完整体验(超详细过程)

蓝牙4.0技术qq交流群:2843127527 iBeacon 是苹果公司推出的一项室内定位技术,通过软件和硬件的结合,从而大大提高室内精度,从原来的几百米,几十米,提高到一米以内的定位精度。有了这...
  • u011341435
  • u011341435
  • 2014年02月06日 11:45
  • 40440

iBeacon如何定位

首先什么是iBeacon?   它是一种基于BLE(低功耗蓝牙)的信号广播设备。每一个设备有一个唯一的ID(UUID+Major+Miner)。iBeacon利用这种特性,在一个区域内广播自己的信号...
  • huayucong
  • huayucong
  • 2016年05月20日 16:59
  • 10727

详解CSS相对定位,绝对定位与固定定位

CSS定位一直是WEB标准应用中的难点,如果理不清楚定位那么可能应实现的效果实现不了,实现了的效果可能会走样。如果理清了定位的原理,那定位会让网页实现的更加完美。     定位的定义:    ...
  • HackProgramer
  • HackProgramer
  • 2014年05月29日 21:16
  • 2400

定位Bug技巧总结

解决Bug是编程人员的天职(创造Bug算是一种天赋吧),甚至有人这么认为:开发人员的能力可以依据他能决解Bug的复杂程度来评定。简单的Bug大多数程序员是靠臆断来解决的,但是当Bug隐藏在代码的最深处...
  • sinat_25141403
  • sinat_25141403
  • 2016年05月03日 20:11
  • 2878

Android简单定位实例

很多应用对定位的要求并不是那么高,也许只是确认一下当前的大概位置,城市的那个方向或者临时需要一个当前的经纬度,这时候定位速度应该是第一位的。下面就说说简单定位需求的实现。 步骤 1.启动应用的时候...
  • limb99
  • limb99
  • 2014年01月27日 20:43
  • 20429
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:定位
举报原因:
原因补充:

(最多只允许输入30个字)