一行代码获取定位信息

在公司接手的几个项目,几乎都和地图有关,比如说定位。因为经常用到,最近又学习了一些注解相关的知识,所以就结合这两者,做了一个开源库,用注解的方式使用定位服务,目前支持百度定位和高德定位。

GayHub传送门

特点

  1. 支持注解方式获取定位信息。
  2. 支持百度定位及高德定位。

简单例子

@LocationAsst(value = MapType.TYPE_BDMap)//指定定位类型,默认百度定位
public class MainActivity extends AppCompatActivity {
    @LocationClient
    BDLocationClient bdClient;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LAMainActivity.bind(this, this);//绑定定位服务

        bdClient.updateOption(myBDOption());//如不设置Option则使用默认的Option

        findViewById(R.id.btn).setOnClickListener(v -> {
            if (bdClient.isStarted()) {
                bdClient.stopLocation();//停止定位
            } else {
                bdClient.startLocation();//启动定位
            }
        });

    }
    
    //接收定位回调
    @onLocationReceived
    void onReceived(BDLocation location) {
        Log.i("ddd", "onReceived: " + location.getAddrStr());
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        LAMainActivity.unBind();//在不需要定位服务的时候解绑定位服务
    }
    
}

使用方式

配置根目录的build.gradle

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

配置app module的build.gradle

dependencies {
    compile 'com.github.WGwangguan.LocationAsst:annotatelocation:v1.0.0'
    compile 'com.github.WGwangguan.LocationAsst:annotations:v1.0.0'
    annotationProcessor 'com.github.WGwangguan.LocationAsst:processor:v1.0.0'
}

配置AndroidManifest.xml




    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    
        
            
                

                
            
        

        
        

        

        
        

        

    


根据需要配置百度/高德定位服务。

其它说明

6.0以上请做好权限处理。

觉得有用的可以点个赞留个star哦,谢谢O(∩_∩)O谢谢。

你可能感兴趣的:(一行代码获取定位信息)