在地图应用相关的开发中,经常会应用到打开第三方地图应用,并在打开的地图上显示标注信息,本文将具体说明目前国内三大地图:百度地图、高德地图、腾讯地图的具体实现效果。先看下本文中效果在美团

本文实现的主要就是上图中的其他地图功能。点击其他地图,跳转本机安装的地图应用上,支持百度、高德和腾讯地图。

判断地图是否安装

首先,我们需要先判断本地是否安装地图类应用,判断方法如下:

    /*** 检测地图应用是否安装** @param context* @param packagename* @return*/public static boolean checkMapAppsIsExist(Context context, String packagename) {PackageInfo packageInfo;try {packageInfo = context.getPackageManager().getPackageInfo(packagename, 0);} catch (Exception e) {packageInfo = null;e.printStackTrace();}if (packageInfo == null) {return false;} else {return true;}}//百度地图应用包名:"com.baidu.BaiduMap"
//高德地图应用包名:"com.autonavi.minimap"
//腾讯地图应用包名:"com.tencent.map"

本文中对是否安装应用做了方法抽取,判断地图应用是否安装调用该方法即可。

第三方地图的跳转

根据上文中判断出的本机地图类型,跳转到指定的地图应用,接下来,我们根据官方文档,依次实现第三方地图应用的调用。说明,本文是基于百度地图坐标系来实现,所以当使用高德地图和百度地图时,需要进行坐标的转换。

1.百度地图调用
由于我们应用中使用的是百度系坐标,所以坐标无需做单独处理。先看下百度官方文档的地图调起URI API的说明,官方文档地址:http://lbsyun.baidu.com/index.php?title=uri/api/android

该API接口能实现图区、搜索、导航等功能,本文主要展示图区功能中的自定义打点功能:

具体代码如下所示:


// shopItem为我们封装的店铺信息类,封装了店铺名称和坐标等信息
Intent intent_baidumap = new Intent();
intent_baidumap.setData(Uri.parse("baidumap://map/marker?location=" + shopItem.getLatitude() + "," + shopItem.getLongitude() + "&title=" + shopItem.getStoreName() + "&content=" + shopItem.getCategoryTitle() + "&traffic=on&src=andr.baidu.openAPIdemo"));
startActivity(intent_baidumap);

展示效果如下所示:

2.高德地图调用
在使用高德地图之前,我们需要对我们的坐标进行转换,本文使用百度地图API提供的方法来进行转换,具体的转换方法有两种:WEB 服务API:http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition 第二种是Android SDK内封装API :http://lbsyun.baidu.com/index.php?title=androidsdk/guide/tool/coordinate 通过这两个方法,我们可以将百度坐标系(BD09坐标)转换为高德或腾讯坐标系(GCJ02坐标)。
坐标转换之后,接下来,我们看高德地图的调用方法:
首先,我们还是还先查找高德地图相关API接口:https://lbs.amap.com/api/amap-mobile/guide/android/marker,在开发文档中,有个地图标注功能,如下所示:

我们同样来演示高德地图的标注功能:


// shopItem为我们封装的店铺信息类,封装了店铺名称和坐标等信息  desCoord是我们根据shopItem中坐标转换后的坐标信息
Intent intent_gdmap = new Intent();
intent_gdmap.setAction("android.intent.action.VIEW");
intent_gdmap.setPackage("com.autonavi.minimap");
intent_gdmap.addCategory("android.intent.category.DEFAULT");
intent_gdmap.setData(Uri.parse("androidamap://viewMap?sourceApplication=testDemo&poiname=" + shopItem.getStoreName() + "&lat=" + desCoord.latitude + "&lon=" + desCoord.longitude + "&dev=0"));
startActivity(intent_gdmap);

实现效果如下所示:

3.腾讯地图调用
腾讯地图的调用,我们同样需要先进行坐标的转换,获取GCJ02的坐标信息,然后查看官方API文档:http://lbs.qq.com/uri_v1/guide-mobile-poiMarker.html 中的地点标注相关内容:

具体的调用方法:


// shopItem为我们封装的店铺信息类,封装了店铺名称和坐标等信息  desCoord是我们根据shopItem中坐标转换后的坐标信息
Intent intent_txmap = new Intent();
intent_txmap.setData(Uri.parse("qqmap://map/marker?marker=coord:"+desCoord.latitude+","+desCoord.longitude+";title:"+shopItem.getStoreName()+";addr:&referer=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"));
startActivity(intent_txmap);

其中最新版本的腾讯API接口需要填写开发者key,这个用户需要单独申请,实现后展示效果如下:

至此,应用内调起第三方地图应用的相关内容就介绍完了,如有问题,欢迎留言。

android 调起第三方地图并添加标注相关推荐

  1. android 百度地图批量添加标注,百度地图API实战

    为地图批量添加标注 这一节我们将在地图上标出我们获取的到旅馆位置 1.原理 我们可以通过for循环的方式为地图批量添加标注 2.设置点的新图标 我们可以通过Icon(url:String, size: ...

  2. android app调用第三方地图路线规划导航(百度,高德,腾讯)

    android app调用第三方地图路线规划导航(百度,高德,腾讯) 因为直接使用高德的sdk提供的导航被投诉说不准,所以需要接第三方. 把BAT系的地图都接上了,有兄弟找到其他的地图调用方法告诉下小 ...

  3. 在js或者App中,调起第三方地图产品(URI API)的汇总

    URI API是为开发者提供直接调起第三方地图产品(Web地图.地图手机客户端)以满足特定业务场景下应用需求的程序接口,开发者只需按照接口规范构造一条标准的URI,便可在PC和移动端浏览器或移动开发应 ...

  4. 离线GoogleMapAPIV3加载本地谷歌地图并添加标注

    利用离线GoogleMapAPIV3加载本地谷歌地图并添加标注 一.准备工作 下载GoogleMapAPIV3.rar. 二.下载地图 首先通过水经注下载器把谷歌卫星地图下载下来. 三.地图引擎部署 ...

  5. 百度地图API (1):往地图中添加标注点

    1.实现功能:通过给定的坐标点,往地图中添加标注点,点击标注点,显示改点的详细信息. 2.效果图: 演示链接:http://www.ltbetter.com:8080/BMap/MapTest1.ht ...

  6. uniapp 移动端调起第三方地图(腾讯,百度,高德)并标注位置,进行导航

    点击某个地方,调起下面的方法 方法要传入需要标注地点的纬度latitude,经度longitude,名字name //打开第三方地图toMapAPP(latitude,longitude,name){ ...

  7. 有关在Vue中JS如何在H5移动端如何调起第三方地图软件(高德、腾讯、百度)

    一. 首先封装区分当前环境是ios端还是android端的方法 RunningPlatform() {let ua = navigator.userAgent.toLowerCase()console ...

  8. android auto三方地图,GitHub - puderty/pudev: 1,百度CarLife映射与高清修改,纯属自用。2,Android Auto的第三方地图...

    百度 CarPro 百度 CarPro 点击下载 基于百度CarLife(6.0.1)修改 第一次启动会提示需要获取屏幕内容权限,请允许,并勾选始终允许 Root用户授权后可以支持车机屏幕全局点击 A ...

  9. Android调起高德地图

    一.Android打开高德地图的方法汇总 System.out.println("乘客端经纬度:" + mNaviTo.latitude + "," + mNa ...

最新文章

  1. python excel操作单元格_python 操作excel表格的方法
  2. Java面试笔试题大汇总三(最全+详细答案)
  3. Hadoop学习笔记—1.基本介绍与环境配置
  4. html表格中绑定显示xml文档内容的简单实例,JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)...
  5. 三连击(洛谷-P1008)
  6. cs231n__4. Backpropagation and Neural Network
  7. 建站基础知识之HTML 是何方神圣?
  8. 计算机软件定时运行,Win7打开定时运行程序的方法
  9. VMX进程已提前退出
  10. Shell-基础部分
  11. 程序员叫啥名字_他们的名字叫程序员
  12. uniapp开发微信公众号H5 定位功能
  13. 微信小程序加载第三方字体
  14. 怎么查看电脑中安装的字体
  15. python中string什么意思_python字符串(string)方法整理
  16. python语言与MATLAB语言的区别
  17. ubuntu16.04 搜狗输入法/谷歌拼音输入法
  18. 数据降维——Isomap
  19. 微信生态SaaS服务商“微赞”完成数千万A轮融资,钜鑫资本投资
  20. 「镁客·请讲」红茶移动金辉:以”eSIM技术和服务提供商”为定位,解决手机通信、物联网的诸多痛点...

热门文章

  1. 银行数据仓库体系实践(12)--数据管理及治理
  2. 对两个SQL查询出来的结果进行计算
  3. 奇迹是否会发生?乙肝从大三阳到小三阳到自愈!
  4. OA 办公系统详细的功能介绍
  5. 美代表奥运会上要戴口罩
  6. js DOM节点操作之创建、添加、删除和克隆节点
  7. android studio游戏摇杆开发教程,仿王者荣耀摇杆
  8. 优雅源自国力--中国可以更优雅
  9. 802.11ax(Wi-Fi6)TWT定时唤醒机制
  10. 国内外著名安全站点 经典的东西