Android项目中调起手机地图导航

本文介绍了在Android项目中如何调用高德、百度、腾讯和谷歌地图进行导航。通常,为了避免增加应用体积,开发者会选择通过第三方地图应用实现导航功能。文中提供了详细的代码示例,包括如何将地址转换为经纬度以满足高德地图的要求,以及在用户未安装地图应用时的提示处理。
摘要由CSDN通过智能技术生成

现在,移动应用中集成地图已经成为一种趋势。导航 - 作为地图中不可或缺的一项功能,被很多移动应用所青睐,然而,导航方式选择上,为了减少不必要的资源和apk容量,一般应用都选择通过调用第三方的地图应用来实现导航功能。在介绍之前,先看一下最终效果:
未安装状态截图

未安装地图应用
  本文主要提供几种常用的调起三方地图应用的导航平台,以高德,百度,腾讯,谷歌地图为例。

地图平台 Uri文档
高德地图 http://lbs.amap.com/api/uri-api/guide/travel/route
百度地图 http://lbsyun.baidu.com/index.php?title=uri/api/android
谷歌地图 https://developers.google.com/maps/documentation/android-api/intents
腾讯地图 http://lbs.qq.com/uri_v1/guide-route.html

  各大地图服务商基本都提供了Uri,方便其他应用调用(除了腾讯),uri网址如上所示.

基本看了以上的文档就会使用了,下面就提供几个平台的基本写法吧:

  • 高德地图导航:

      高德地图较为特殊,其他地图平台都可以选择传入地址或者经纬度作为参数,而高德要求必须有经纬度。没办法,那就先撸个地理编码的轮子吧,方便我们将地址信息转化为准确的经纬度坐标,具体看下面代码:

/**
     * by moos on 2017/09/18
     * func:调用高德地图的地理编码接口,返回经纬度坐标
     * @param address
     */
    private void translateAddressToLocation(String address){


        OkHttpUtils
                .get()
                .url(GEOCODE_HTTP_URL + "address="+address+"&key="+SELF_AMAP_KEY)
                .build()
                .execute(new StringCallback() {
                    @Override
                    public void onError(Call call, Exception e, int id) {
                        Log.e("地理编码失败=", e.getMessage());
                        //DialogUtils.dismissProgressDialog();
                        Toast.makeText(UnityScanActivity.this, getString(R.string.act_qr_code_fail), Toast.LENGTH_LONG).show();
                    }
                    @Override
                    public void onResponse(String response, int id) {

                        Logger.e("地理编码结果 =" + response);
                        resultBean = JSONObject.parseObject(response, GeocodeResultBean
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值