开启第三方地图(高德)

2023-10-28

public class OpenGDMapUtil {
    /**
     *
     * @param mActivity 上下文
     * @param sLatLng 开始点的坐标
     * @param sPosition 开锁的位置
     * @param ePosition 结束的位置
     * @param eLatlng 结束的坐标
     * @param type 行走的类型,车,步行,公交
     */
    public static void startNaviGao(Activity mActivity
            , LatLng sLatLng,
                                    String sPosition,
                                    String ePosition, LatLng eLatlng, String type) {
        if (isAvilible(mActivity, "com.autonavi.minimap")) {
            openAppMap(mActivity
                    ,sLatLng.latitude,sLatLng.longitude
                    ,sPosition,eLatlng.latitude,eLatlng.longitude,ePosition);
        } else {
            openWebGDNavi(mActivity,
                    sPosition,sLatLng.latitude,sLatLng.longitude,ePosition,eLatlng.latitude
                    ,eLatlng.longitude,type);
        }
    }
    //验证各种导航地图是否安装
    private static boolean isAvilible(Context context, String packageName) {
        //获取packagemanager
        final PackageManager packageManager = context.getPackageManager();
        //获取所有已安装程序的包信息
        List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);
        //用于存储所有已安装程序的包名
        List<String> packageNames = new ArrayList<String>();
        //从pinfo中将包名字逐一取出,压入pName list中
        if (packageInfos != null) {
            for (int i = 0; i < packageInfos.size(); i++) {
                String packName = packageInfos.get(i).packageName;
                packageNames.add(packName);
            }
        }
        //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE
        return packageNames.contains(packageName);
    }

    /**
     * 打开高德 Web地图导航
     */
    private static void openWebGDNavi(Activity mActivity, String sPosition, double sLat, double sLng, String ePosition, double eLat, double eLng, String type) {
        StringBuffer stringBuffer = new StringBuffer("http://ditu.amap.com/dir?from[name]="+ sPosition+
                "&from[lnglat]="+sLng+"%2c"+sLat+"&to[name]="+ePosition +
                "&to[lnglat]="+eLng+"%2c"+eLat+"&type="+type+"&policy=1");
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(stringBuffer.toString()));
        mActivity.startActivity(intent);
    }
    /**
     *打开app高德
     */
    private static void openAppMap(Activity mActivity, double slat, double slon, String sname, double dlat, double dlon, String dname){
        Uri mapUri = Uri.parse(getGdMapUri("map", String.valueOf(slat), String.valueOf(slon), sname,
                String.valueOf(dlat), String.valueOf(dlon),
                dname));
        Intent loction = new Intent(Intent.ACTION_VIEW, mapUri);
        mActivity.startActivity(loction);
    }
    /**
     * 获取打开高德地图应用uri
     */
    private static String getGdMapUri(String appName, String slat, String slon, String sname, String dlat, String dlon, String dname){
        String uri = "androidamap://route?sourceApplication=%1$s&slat=%2$s&slon=%3$s&sname=%4$s&dlat=%5$s&dlon=%6$s&dname=%7$s&dev=0&m=0&t=2";
        return String.format(uri, appName, slat, slon, sname, dlat, dlon, dname);
    }


}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开启第三方地图(高德) 的相关文章

  • 深入Spring Boot :打包解决方案

    最近有位网友私信我咨询一个SpringBoot项目打包的问题 这位朋友说网络上有很多重复 不可用的技术文章 这个倒是事实 更糟糕的一些自媒体为了流量抄来抄去 增加我们查找解决方案的时间成本 我也尝试去搜索了一下 SpringBoot打包 结
  • pip install 及导出安装库,批量安装库

    1 批量安装库 pip install r e requirements txt 2 导出安装库及版本 pip freeze gt requirements txt 3 查看库信息 pip show f package name 4 检查兼
  • 【杂七杂八的东西】ROSBAG:用python按时间戳提取bag中的图像

    1 ROSBAG提取制定topic图像 跟着朋友学习了一下如何在bag中提取带有时间戳的图像 我们主要取的是单通道的深度图像 感觉在ROS机器人中使用的非常普遍 闲话不多说 直接上完整的python代码 如果想看详细的ROSBAG解释的话可
  • 0比20,字节跳动在与腾讯的这场掐架中输的太惨...

    5月7日 中国新闻网报道称 广州知识产权法院于4月26日作出了一项诉讼判决 认定字节跳动旗下火山小视频 现抖音火山版 平台玩家 在未经腾讯授权的情况下直播 王者荣耀 游戏 构成侵权 一审判决要求火山小视频停止 王者荣耀 游戏直播 并赔偿原告
  • 106. 从中序与后序遍历序列构造二叉树

    一 题目描述 给定两个整数数组 inorder 和 postorder 其中 inorder 是二叉树的中序遍历 postorder 是同一棵树的后序遍历 请你构造并返回这颗 二叉树 示例 1 输入 inorder 9 3 15 20 7
  • 爬虫从入门到放弃——Webmagic源码阅读之PageModel

    PageModel 在OOSpider里面 有这样一段注释 The spider for page model extractor br In webmagic we call a POJO containing extract resul
  • 实现和设置玩家UI血量等基本操作。(Unity)

    方法一 在屏幕上显示玩家的UI血量 首先在UI组件中创建Canvas画布 设置画板大小 具体数字按自己要求来 创建玩家的血条UI 选择Slider组件 调整下面箭头处 具体值按你自己的要求来 在填充处选择玩家血量的填充颜色 因为开发中我们需
  • 利用pygame写星球大战小游戏

    前段时间学了pygame 这两天写一个星球大战小游戏 今天准备分享出来 开发工具 python3 8 pycharm 代码注释超级详细 在这里就废话不多说了 请看代码 导入相关模块及库 import pygame import sys im
  • 6. 从0开始学ARM-异常及中断处理、异常向量表、swi

    七 异常及中断处理 异常向量表 swi 一 异常 Exception 异常是理解CPU运转最重要的一个知识点 几乎每种处理器都支持特定异常处理 中断是异常中的一种 有时候我们衡量一个操作系统的时候实时性就是看os最短响应中断时间以及单位时间
  • 第17课 微信小程序通过node获取用户openid:

    第17课 微信小程序通过node获取用户openid 调用 wx login 获取 临时登录凭证code 并回传到开发者服务器 调用 auth code2Session 接口 换取用户唯一标识 OpenID 和 会话密钥 session k
  • 11款常用的安全测试工具

    1 AppScan 一款安全漏洞扫描工具 支持Web和移动 现在安全测试做漏洞扫描非常适用 它相当于是 探索 和 测试 的过程 最终生成很直观的测试报告 有助于研发人员分析和修复通常安全测试工具用这个 扫描一些安全漏洞 用起来比较方便 网上
  • php request instance,TP5学习笔记 请求(request)变量

    可以通过Request对象完成全局输入变量的检测 获取和安全过滤 支持包括 GET POST REQUEST SERVER SESSION COOKIE ENV等系统变量 以及文件上传信息 检测变量是否设置 可以使用has方法来检测一个变量
  • linux 挂载磁盘 普通用户读写 --chatGPT

    问 mount 挂载共享磁盘 指定用户fly可以读写 gpt 要将共享磁盘挂载并授予用户 fly 读写权限 您可以使用 mount 命令结合合适的挂载选项 首先 您需要确保磁盘已经连接到系统上 然后 按照以下步骤进行操作 1 创建一个目标目
  • CPU 与 GPU 之间数据转换 cudaMemcpy

    显存上分配空间 CUDA SAFE CALL cudaMalloc void Dst d sizeof float3 totalPNum 显存上传输数据 CUDA SAFE CALL cudaMemcpy Dst d Srcdata0 h
  • HAProxy--理论--02--配置文件

    HAProxy 理论 02 配置文件 1 配置文件组成 1 global 设置全局配置参数 2 defaults 设置的默认参数 3 frontend 接收请求的前端虚拟节点 Frontend可以直接指定具体使用后端的backend 4 b
  • anaconda 激活环境 并 安装相关包 torch 安装matplotlib

    1 管理员身份 运行 anaconda prompt 2 激活环境 查看python版本 activate 环境名称 3 查看已经安装的包 4 安装所需的包 方法1 pip install matplotlib 如果太慢建议更换国内镜像源
  • vue中给dom元素绑定js原生onclick事件并获取data中定义的数据和调用函数

    onclick 执行的是 window 环境中的方法 所以 将 this 中的方法或data中定义的字段关联到 window 上即可 vue代码 mounted window customMethods this customMethods
  • MariaDB+SpringBoot 报错 Caused by: java.sql.SQLException: GSS-API authentication exception

    最近在搭建springboot mybatis mariadb 项目的时候遇到了如题的问题 搜索了一圈没找到合适的解决方法 因此记录下我的解决方案 希望对后来者有帮助 先说结论 重装MariaDB即可 1 环境和配置信息 开发环境 win1
  • 排序基础算法(一)—— 堆排序

    堆排序 前言 1 完全二叉树 2 大根堆和小根堆 3 堆排序原理 一 调整堆 二 建初堆 三 堆排序算法的实现 Java代码 前言 堆排序是一种树形选择排序 在排序过程中 将待排序的记录r 1 n 看成是一棵完全二叉树的顺序存储结构 利用完
  • ffmpeg基础(五) I帧B帧P帧

    一 I帧 关键帧 属于帧内压缩 你可以理解为这一画面的完整保留 解码的时候只需要本帧的数据就可以完成 因为它包含的是完整信息 特点 1 它是一个全帧压缩编码帧 将全帧图像进行JPEG压缩以及传输 2 解码的时候只需要通过I帧的数据就可以得到

随机推荐

  • C++primer Plus 第三章复习题

    1 为什么C 有多种整型 有多种整型 可以根据输出结果选择最合适的类型 比如年龄可以使用short 存储容量用long 2 声明与下述描述相符的变量 a short整型 值为80 short num 80 b unsigned int 整型
  • python时间相减_python 计算时间差,时间加减运算代码

    1 方便的计算两个时间的差 如两个时间相差几天 几小时 import datetime d1 datetime datetime 2009 3 23 d2 datetime datetime 2009 10 7 dayCount d1 d2
  • MsSQL数据备份与恢复---完全备份与增量备份

    文章目录 1 数据备份 1 1 数据备份的重要性 1 2 数据备份的分类 1 2 1 从物理与逻辑的角度分类 1 2 2 从数据库的备份策略角度分类 1 2 3 备份方式的比较 1 3 常见的备份方法 2 MySQL完全备份与恢复 2 1
  • 扩容 磁盘、pv、lv

    因虚似机上的磁盘空间不够了 试了下偏门的扩展方法 root hdss7 21 df h Filesystem Size Used Avail Use Mounted on devtmpfs 1 9G 0 1 9G 0 dev tmpfs 1
  • Datawhale&Git-Model:假设检验2-多元数值向量的检验

    作业 为研究东 中 西部各省市规模以上的企业发展状况 我们收集了各城市企业的主要经济指标 包括 总资产贡献率 资产负债率 流动资产周转次数 工业成本费用利润率 产品销售率 我们用变量 类别 定义了各类城市 其中1为东部城市 2为中部城市 3
  • openwrt单网口进不了登录界面

    图一 图二 图一是刷完固件后 图二是网线直连电脑的IP配置 进不了登录界面 也ping 不通 请教是什么原因
  • 使用命令恢复postgres数据库报错psql: FATAL: role "root" does not exist 解决方案

    因为是从其他地方备份出来的sql文件 如果直接用pgAdmin4因为格式问题报错input file appears to be a text format dump Please use psql 所以换用命令行执行 但是出现psql F
  • 如何使用vant库的loading组件

    第一步 main js文件引入下载的loading 全局引入ui组件 import Vant from vant import vant lib index css Vue use Vant 第二步 在vuex中定义全局变量loading
  • Java Utils工具类大全

    源码和jar见 https github com evil0ps utils Java Utils 封装了一些常用Java操作方法 便于重复开发利用 另外希望身为Java牛牛的你们一起测试和完善 欢迎入群263641914 一起封装和完成常
  • 鉴权大全(cookie、session、token、jwt、单点登录),深入理解和搞懂鉴权

    先从状态说起吧 众所周知http是无状态的协议 也就是说 HTTP 请求方和响应方间无法维护状态 都是一次性的 它不知道前后的请求都发生了什么 是不是可以单纯的理解为它是一个超级无敌健忘的协议 但有的场景下 我们需要维护状态 最典型的 一个
  • 关于mipi camera 传输速率的计算

    假设图片的分辨率是 1600x1200 帧率按照 30HZ来计算 在理想状态下 未包含 RGB 信号的前后肩宽度 总传输速率为 1600x1200x24x30 1024 1024 1318 4Mbps 如果是单通道传输 则每通道数据传输速率
  • C++:内存管理

    目录 学习目标 1 C C 内存分布 2 C C 动态内存管理 2 1 C动态内存管理 2 2 C 动态内存管理 3 operator new与operator delete函数 4 new和delete的实现原理 5 定位new表达式 学
  • linux fdisk的分区和格式化和挂载相关操作说明

    注意 分区的时候要umount磁盘之后才能分区 在Ubuntu用fdisk分析需要root用户权限 第一步 先把设备卸载掉 解除占用 caizd ubuntu home share lsblk 查看大小空间 caizd ubuntu hom
  • Air780E

    目录 基础资料 探讨重点 参考阅读 实现功能 硬件准备 软件版本 腾讯云物理网平台接入 1 新建项目 2 新建产品 3 添加设备 4 接入方式选择 5 官方密钥认证设备接入指引 6 示例 采用Python实现 HMAC SHA1 算法 结果
  • python读取txt文件(多种方法)

    原始数据 唐诗一百首 txt 方法1 f open 唐诗一百首 txt encoding gbk txt for line in f txt append line strip print txt line strip 去除首尾空格 enc
  • QT中的数据类型转换总结

    一 QString的转换 QString转QByteArray QByteArray byte QString string byte string toLatin1 QString转String QString string std st
  • spring-kafka 会创建多少线程来消费你的topic

    平时工作中 我们对接kafka主要使用的是spring kafka 但是指定的topic到底如何设置线程数 设置的线程数作用范围是什么 详细很多人并不清楚 先上结论 spring kafka是基于group来分配线程数的 在spring k
  • IDEA提示类注释的wrong tag警告的解决办法

    当创建一个类的时候 给类写上注释时 出现类似于 Wrong tag date less Ctrl F1 这种警告 解决方式是 alt enter gt add to custom tags 之后可以看到修改 红色圈位置 以及警告的消失 转载
  • 对 PhD一年级新生有什么建议?

    来源 https www zhihu com question 32210068 answer 624547698 编辑 深度学习与计算机视觉 声明 仅做学术分享 侵删 作者 王晋东不在家 https www zhihu com quest
  • 开启第三方地图(高德)

    public class OpenGDMapUtil param mActivity 上下文 param sLatLng 开始点的坐标 param sPosition 开锁的位置 param ePosition 结束的位置 param eL