高德地图开发(一)

本文介绍如何在Android Studio中集成高德地图SDK,包括下载SDK、添加依赖、配置权限及实现基本的地图显示与定位功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先去高德地图开发者官网下载所需的SDK,根据自己的需要下载SDK。高德官网会把下载的SDK包合并为一个集成包。
高德地图开放平台官网:https://lbs.amap.com/
2.将下载的集成包解压,将其中AMap3DMap_6.7.0_AMapNavi_6.6.0_AMapSearch_6.5.0_AMapLocation_4.4.0_20190214.jar复制到libs目录下
在这里插入图片描述
然后选中这个jar包,右键弹出菜单,选择菜单最底端的add as libary。这样jar包就成功添加到工程中了。
然后添加so包,在main目录下新建文件夹jinLibs,将刚才解压出来的全部so包,复制添加到jinLibs文件夹下,此时就完成高德地图SDK在AndroidStudio的集成。

在这里插入图片描述
3.在manifests中添加<meta-data android:name="com.amap.api.v2.apikey" android:value="your key"/>
在这里插入图片描述
然后在manifests中添加所需要权限,比如网络定位等。

5.在activity_main布局文件中添加MapView
在这里插入图片描述
4.在MainActivity中实现地图和定位权限申请

public class MainActivity extends AppCompatActivity implements LocationSource,AMapLocationListener{

    MapView mapView = null;//地图视图
    AMap aMap;//地图对象
    OnLocationChangedListener mListener;//定位监听
    AMapLocationClient client;//定位者
    AMapLocationClientOption option;//定位参数
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mapView = findViewById(R.id.map);
        mapView.onCreate(savedInstanceState);//创建地图
        init();
    }

    //Android6.0之后动态申请权限(申请定位权限)
    @Override
    public void onRequestPermissionsResult(int requestCode,String[] permissions,int[] grantResults){
        super.onRequestPermissionsResult(requestCode,permissions,grantResults);
        EasyPermissions.onRequestPermissionsResult(requestCode,permissions,grantResults,this);
    }
    private void init(){
        aMap = mapView.getMap();//获取地图对象
        UiSettings settings = aMap.getUiSettings();//获取定位按钮
        aMap.setLocationSource(this);//设置定位按钮
        settings.setMyLocationButtonEnabled(true);//显示定位按钮
        aMap.setMyLocationEnabled(true);//显示定位层并可触发定位
    }

    @Override
    public void activate(OnLocationChangedListener onLocationChangedListener){
        mListener = onLocationChangedListener;
        client = new AMapLocationClient(this);//定位回调监听
        client.setLocationListener(this);
        option = new AMapLocationClientOption();
        option.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);//高精度定位
        client.setLocationOption(option);//加载定位参数
        client.startLocation();//开始定位
    }

    //停止定位
    @Override
    public void deactivate(){
        mListener = null;
        if (client != null){
            client.stopLocation();
            client.onDestroy();
        }
        client = null;
    }

    //定位成功后回调函数
    @Override
    public void onLocationChanged(AMapLocation aMapLocation){
        if (mListener != null){
            if (aMapLocation != null&&aMapLocation.getErrorCode() == 0){
                Log.e("经度",String.valueOf(aMapLocation.getLatitude()));
                Log.e("纬度",String.valueOf(aMapLocation.getLongitude()));
                Log.e("地址",aMapLocation.getAddress());
            }
            else Log.e("定位结果","定位失敗");
        }
    }

    @Override
    protected void onDestroy(){
        super.onDestroy();
        mapView.onDestroy();
        if (client !=null){
            client.onDestroy();
        }
    }
}

至此可以实现地图的显示和定位功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值