android 高德定位

标签: android 定位 高德 地图
52人阅读 评论(0) 收藏 举报
分类:
android 高德定位

      今天所分享的是一个简单的高德定位,就是简单的获取当前的位置,可能高德导航要好玩点,但是目前暂未有那方面的需求,所以就只是用到了高德的一个定位。其实高德文档已经写得差不多了,但是自己做了以后就当做一个笔记吧,高德api地址是http://lbs.amap.com/api/android-location-sdk/guide/android-location/getlocation

一、build.gradle

//高德地图定位
    compile 'com.amap.api:location:latest.integration'

二、清单文件AndroidMainfest.xml

<!--权限-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--高德地图定位-->
<meta-data android:name="com.amap.api.v2.apikey" android:value="8049c3fe80541356b00a6055f0ef9789">
</meta-data>
<service android:name="com.amap.api.location.APSService"></service>

三、MainActivity

1、声明对象

//声明AMapLocationClient类对象
public AMapLocationClient mLocationClient = null;
//声明定位回调监听器
public AMapLocationListener mLocationListener = new MyAMapLocationListener();
//声明AMapLocationClientOption对象
public AMapLocationClientOption mLocationOption = null;

2、高德定位方法

// 高德定位
public void getPositioning() {
    //初始化定位
    mLocationClient = new AMapLocationClient(mContext);
    //设置定位回调监听
    mLocationClient.setLocationListener(mLocationListener);
    //初始化AMapLocationClientOption对象
    mLocationOption = new AMapLocationClientOption();
    //获取一次定位结果:
    //该方法默认为false。
    mLocationOption.setOnceLocation(true);
    //获取最近3s内精度最高的一次定位结果:
    //设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。
    mLocationOption.setOnceLocationLatest(true);
    //设置是否返回地址信息(默认返回地址信息)
    mLocationOption.setNeedAddress(true);
    //设置是否允许模拟位置,默认为true,允许模拟位置
    mLocationOption.setMockEnable(true);
    //给定位客户端对象设置定位参数
    mLocationClient.setLocationOption(mLocationOption);
    //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
    mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
    //启动定位
    mLocationClient.startLocation();
}

3、高德定位回调

//    高德定位回调
class MyAMapLocationListener implements AMapLocationListener{
    @Override
    public void onLocationChanged(final AMapLocation aMapLocation) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                Location location = new Location();
                location.setLatitude(aMapLocation.getLatitude());
                location.setLongitude(aMapLocation.getLongitude());
                location.setAddress(aMapLocation.getAddress());
                location.setCountry(aMapLocation.getCountry());
                location.setCity(aMapLocation.getCity());
                location.setDistrict(aMapLocation.getDistrict());
                location.setStreet(aMapLocation.getStreet());
                location.setStreetNum(aMapLocation.getStreetNum());
                location.setCityCode(aMapLocation.getCityCode());
                location.setAdCode(aMapLocation.getAdCode());
                location.setPoiName(aMapLocation.getPoiName());
                location.setAoiName(aMapLocation.getAoiName());
                location.setErrorCode(aMapLocation.getErrorCode());
                Gson gson = new Gson();
                String json = gson.toJson(location);
            }
        }).start();
    }
}

4、3中Location实体类

package com.iwiteks.PalmarTourism.bean;

/**
 * Created by me on 2018/2/2.
 */

public class Location {
    private double latitude;
    private double longitude;
    private String address;
    private String country;
    private String city;
    private String district;
    private String street;
    private String streetNum;
    private String cityCode;
    private String adCode;
    private String poiName;
    private String aoiName;
    private Integer errorCode;


    public double getLatitude() {
        return latitude;
    }

    public void setLatitude(double latitude) {
        this.latitude = latitude;
    }

    public double getLongitude() {
        return longitude;
    }

    public void setLongitude(double longitude) {
        this.longitude = longitude;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getDistrict() {
        return district;
    }

    public void setDistrict(String district) {
        this.district = district;
    }

    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

    public String getStreetNum() {
        return streetNum;
    }

    public void setStreetNum(String streetNum) {
        this.streetNum = streetNum;
    }

    public String getCityCode() {
        return cityCode;
    }

    public void setCityCode(String cityCode) {
        this.cityCode = cityCode;
    }

    public String getAdCode() {
        return adCode;
    }

    public void setAdCode(String adCode) {
        this.adCode = adCode;
    }

    public String getPoiName() {
        return poiName;
    }

    public void setPoiName(String poiName) {
        this.poiName = poiName;
    }

    public String getAoiName() {
        return aoiName;
    }

    public void setAoiName(String aoiName) {
        this.aoiName = aoiName;
    }

    public Integer getErrorCode() {
        return errorCode;
    }

    public void setErrorCode(Integer errorCode) {
        this.errorCode = errorCode;
    }
}
5、至此,3中json就是返回的定位信息json字符串信息
查看评论

iOS GPS定位-地图显示、定位| 高德地图| 百度地图

-
  • 1970年01月01日 08:00

android中借助高德地图sdk实现基本的定位

android中借助高德地图sdk实现基本的定位
  • coding_p
  • coding_p
  • 2017-03-28 20:36:42
  • 1656

Android基于高德地图实时定位服务

Service功能有:实时定位(后台进行) Service不会,去百度谷歌 功能有 实时定位(30秒间隔) 判断是否在规定的时间段内 判断距离是否大于规定的距离 判断服务是否在开启的状态服...
  • qq_24536171
  • qq_24536171
  • 2017-03-27 14:07:54
  • 2729

Android Studio 中实现高德定位并获取相应信息

  • 2017年02月24日 14:18
  • 25.18MB
  • 下载

android ------实现高德定位并获取相应信息

Android开发项目时常常会遇到定位这个功能,所以写了这篇博客,今天主要讲的高德地图的定位并获取相应信息。首先导入高德的jar包选中jar包右键点击  Add As Library, 在build....
  • DickyQie
  • DickyQie
  • 2017-02-24 14:15:38
  • 3027

Android编程——高德API使用心得(一)之定位功能的实现

高德API使用心得(一) 前言 准备工作 下载高德地图的api 申请key 在AndroidManifest填入key 实现定位功能 一、 前言 前段时间为了拿时长,学习了一个月的...
  • little_heart
  • little_heart
  • 2017-05-12 10:48:21
  • 718

android:应用程序内定位处理,百度定位,高德定位,系统定位处理.

文章来自:http://blog.csdn.net/intbird 关于定位的几点体验 地图上使用定位 定位信息说明 应用内确保定位返回结果思考 应用内使用定位服务代码 代码基础使用方法关于定位的几点...
  • intbird
  • intbird
  • 2015-04-27 11:16:06
  • 1540

安卓高德地图实时定位方法的封装

安卓地图的开发对于一个没有地图开发经验的人来说还是有点摸不着头脑的,我刚开始的时候就走了很多弯路,现在将自己实现的方法分享出来,供大家参考:首先要去到高德地图的开方平台申请key值:点击打开链接然后下...
  • zhaoxiaojian1213
  • zhaoxiaojian1213
  • 2018-02-08 16:52:00
  • 224

高德Android 定位SDK示例

  • 2014年01月23日 17:41
  • 764KB
  • 下载

android 高德地图定位服务启动失败 怎么破

服务我加了
  • shijiang7096
  • shijiang7096
  • 2016-12-31 13:43:08
  • 409
    个人资料
    持之以恒
    等级:
    访问量: 9万+
    积分: 1555
    排名: 3万+
    友情链接
    最新评论