高德地图车机版API演示程序
高德地图车机版API演示程序
做车载的应该和这个程序打交道打的比较多吧,这里是我今天写的一个实现了他的API的一个演示程序
首先我们来看下他的官网、
相对于其他的api来说,这个api已经相对挺完善的,如果想使用这个车机版地图,你需要去下载一些资源包,放在对应的位置然后联网激活,这些就不详细的说明了
概述
高德地图车机版(amap auto)第三方调用API是为整车厂、前后装主机厂、系统方案商、开发者等,提供的在自己系统或应用中调用高德地图车机版功能的一套方法。调用方可以根据业务需求,调用POI搜索、路线规划、地图操控、导航等功能,充分提升和完善系统及应用的车载体验。
适用环境
Android 车机网页端或车机应用App
支持版本
支持 Android 高德地图车机版 App V1.1.0 及以上版本
术语约定
Intent 调用:Android 平台术语,指代第三方应用调用高德地图车机版 Android 客户端的方式
我们主要来看下我们的程序,他只有一个ListView,所有我们的程序layout应该是:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="5dp">
<ListView
android:id="@+id/mListView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
我们的主程序就更好说话了
MainActivity
package com.liuguilin.com.amapsample;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
/**
* 高德车机版API演示程序
* 官网:http://lbs.amap.com/api/amapauto/#id004
* by刘桂林
*/
public class MainActivity extends AppCompatActivity {
//TAG
private static final String TAG = "AMapSample";
//列表
private ListView mListView;
//适配器
private ArrayAdapter<String> adapter;
//数据
private List<String> mList;
//应用名称
private String appName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
initView();
}
/**
* 初始化数据 / 便于扩展
*/
private void initData() {
mList = new ArrayList<>();
mList.add("1.进入主图");
mList.add("2.显示我的位置");
mList.add("3.路线规划");
mList.add("4.通过地址");
mList.add("5.通过经纬度");
mList.add("6.搜索地点");
mList.add("7.关键字导航");
mList.add("8.周边分类");
mList.add("9.直接导航");
mList.add("10.地图标注");
mList.add("11.地图操作");
mList.add("12.特殊点导航");
mList.add("13.全程概览");
mList.add("14.路线偏好");
mList.add("15.路线偏好");
mList.add("16.取消导航");
mList.add("17.退出应用");
mList.add("18.打开收藏夹");
}
/**
* 初始化
*/
private void initView() {
//程序名
appName = getString(R.string.app_name);
Log.i(TAG, "appName:" + appName);
mListView = (ListView) findViewById(R.id.mListView);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mList);
mListView.setAdapter(adapter);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
parsing(i);
}
});
}
/**
* 操作
*
* @param i
*/
private void parsing(int i) {
Log.i(TAG, "position:" + i);
switch (i) {
//1.进入主图 进入高德地图车机版主图页面
case 0:
openMapOperation("androidauto://rootmap?sourceApplication=" + appName);
break;
//2.显示我的位置 显示当前车位
case 1:
openMapOperation("androidauto://myLocation?sourceApplication=" + appName);
break;
//3.路线规划 输入起点和终点,计算驾车线路。支持按偏好规划路线
case 2:
//起点纬度
double slat = 36.2;
//起点经度
double slon = 116.1;
//起点名称
String sname = "abc";
//终点纬度
double dlat = 36.3;
//终点经度
double dlon = 116.2;
//终点名称
String dname = "def";
/**
* 起终点是否偏移
* 0:lat 和 lon 是已经加密后的,不需要国测加密;
* 1:需要国测加密
*/
int dev = 0;
/**
* 驾车方式
=0(速度快)
=1(费用少)
=2(路程短)
=3 不走高速
=4(躲避拥堵)
=5(不走高速且避免收费)
=6(不走高速且躲避拥堵)
=7(躲避收费和拥堵)
=8(不走高速躲避收费和拥堵)
*/
int m = 0;
openMapOperation("androidauto://route?sourceApplication=" + appName +
"&slat=" + slat + "&slon=" + slon + "&sname=" + sname + "&dlat=" +
dlat + "&dlon=" + dlon + "&dname=" + dname + "&dev= " + dev + "&m=" + m);
break;
//4.通过地址 给定 POI 名称,得出该点的经纬度坐标
case 3:
String addr = "深圳世界之窗";
openMapOperation("androidauto://viewGeo?sourceApplication=" + appName + "&addr=" + addr);
break;
//5.通过经纬度 给定经纬度坐标,得出相应的 POI 地址名称
case 4:
double lat = 39.9;
double lon = 116.48;
//起终点是否偏移(0:lat和lon是已经加密后的,不需要国测加密; 1:需要国测加密)
int dev4 = 0;
openMapOperation("androidauto://viewReGeo?sourceApplication=" + appName + "&lat=" + lat + "&lon=" + lon + "&dev=" + dev4);
break;
//6.搜索地点 搜索周边的超市、银行、加油站等分类信息。
case 5:
//搜索POI的关键字,如银行、加油站
String keywords = "电影院";
//起终点是否偏移(0:lat和lon是已经加密后的,不需要国测加密;1:需要国测加密)
int dev5 = 0;
//这里官网提供了两种方式,经纬度和兴趣点,有兴趣的可以自己去官网
openMapOperation("androidauto://poi?sourceApplication=" + appName + "&keywords=" + keywords + "&dev=" + dev5 + "Wod");
break;
//7. 关键字导航 根据名称,启动高德地图车机版搜索终点,选择终点后开始启动导航。
case 6:
//搜索关键字
String keywords6 = "方恒国际中心";
/**
* 导航方式
0 速度快
1 费用少
2 路程短
3 不走高速
4躲避拥堵
5不走高速且避免收费
6不走高速且躲避拥堵
7躲避收费和拥堵
8不走高速躲避收费和拥堵
*/
int style = 2;
openMapOperation("androidauto://keywordNavi?sourceApplication=" + appName + "&keywords=" + keywords6 + " &style=" + style);
break;
//8. 周边分类 搜索周边的超市、银行、加油站等分类信息
case 7:
String keywords7 = "银行";
//dev照旧
//官网提供两种方式
openMapOperation("androidauto://arroundpoi?sourceApplication=" + appName + "&keywords=" + keywords7 + "&dev=0");
break;
//9. 直接导航 输入终点,以用户当前车位为起点开始路线导航
case 8:
//POI 名称
String poiname = "fangheng";
//纬度
double lat8 = 36.547901;
//经度
double lon8 = 104.258354;
//dev和style照旧
//貌似不需要action_view
openMapOperation("androidauto://navi?sourceApplication=" + appName + "&poiname=" + poiname +
"&lat=" + lat8 + "&lon=" + lon8 + "&dev=1&style=2");
break;
//10. 地图标注 根据名称或经纬度,启动高德地图车机版展示一个标注点
case 9:
//POI 名称
String poiname9 = "abc";
//纬度
double lat9 = 36.2;
//经度
double lon9 = 116.1;
//dev照旧
openMapOperation("androidauto://viewMap?sourceApplication=" + appName + "&poiname=abc&lat=" + lat9 + "&lon=" + lon9 + "&dev=0");
break;
//11. 地图操作 对地图进行操作,开关实时路况,缩放地图,切换视角。可组合
case 10:
/**
* 0 实时路况开
* 1实时路况关
*/
int traffic = 0;
/**
* 0缩小地图
* 1放大地图
*/
int zoom = 1;
/**
* 0切换2d车上
* 1切换2d北上
* 2切换3d车上支持
*/
int switchView = 2;
openMapOperation("androidauto://mapOpera?sourceApplication=" + appName + "&traffic=" + traffic + "&zoom=" + zoom + "&switchView=" + switchView);
break;
//12. 特殊点导航 回家/公司
case 11:
/**
* home回家
* crop回公司
*/
String dest = "home";
openMapOperation("androidauto://navi2SpecialDest?sourceApplication=" + appName + "&dest=" + dest);
break;
//13. 全程概览 进入或退出全程概览状态。仅在导航引导状态下响应
case 12:
/**
* 0 进入全览
* 1 退出全览
*/
int isShowPreview = 0;
openMapOperation("androidauto://naviPreview?sourceApplication=" + appName + "&isShowPreview=" + isShowPreview);
break;
//14. 路线偏好 导航引导状态下,按偏好组合重新规划路线
case 13:
//躲避拥堵 0开; 1关
int isAvoidJam = 0;
//避免收费 0开; 1关
int isVoidCharge = 0;
//不走高速 0开; 1关
int isAvoidHighway = 0;
//高速优先 0开; 1关
int usingHighway = 0;
openMapOperation("androidauto://naviRoutePrefer?sourceApplication=" + appName +
"&isAvoidJam=" + isAvoidJam + "&isVoidCharge=" + isVoidCharge +
"&isAvoidHighway=" + isAvoidHighway + "&usingHighway=" + usingHighway);
break;
//15. 路线偏好Ex 导航引导状态下,按规划原则重新规划路线
case 14:
/**
* 导航方式
0 速度快
1 费用少
2 路程短
3 不走高速
4 躲避拥堵
5 不走高速且避免收费
6 不走高速且躲避拥堵
7 躲避收费和拥堵
8 不走高速躲避收费和拥堵
*/
int type = 0;
openMapOperation("androidauto://naviRoutePreferEx?sourceApplication=" + appName + "&type=" + type);
break;
//16. 取消导航 退出导航引导状态,回主图
case 15:
openMapOperation("androidauto://naviExit?sourceApplication=" + appName);
break;
//17. 退出高德地图车机版 退出高德地图车机版应用
case 16:
openMapOperation("androidauto://appExit?sourceApplication=" + appName);
break;
//18. 打开收藏夹 打开“管理收藏夹”界面
case 17:
openMapOperation("androidauto://openFavorite?sourceApplication=" + appName);
break;
}
}
/**
* 启动地图操作
*
* @param url
*/
private void openMapOperation(String url) {
Intent intent = new Intent("android.intent.action.VIEW",
android.net.Uri.parse(url));
intent.setPackage("com.autonavi.amapauto");
intent.addCategory("android.intent.category.DEFAULT");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
最终实现的效果就是这个样子了
我只是把官网的api统一一下而已,并没有什么技术含量,只是为了方便自己以后调用而已,嘻嘻,有兴趣的可以观摩一下
源码:http://download.csdn.net/detail/qq_26787115/9628289
可以加群聊聊:555974449
高德地图车机版API演示程序的更多相关文章
- 【python】获取高德地图省市区县列表
项目中需要用省市区来进行检索,原想高德地图肯定会有API来获得这些数据,结果没有找到,有一个接口好像可以用,但是会附带大量的边界坐标点. 所以就不如自己把高德的省市区列表扒下来,自己写接口来完成这个功 ...
- 实例源码--Android高德地图实例源码
下载源码 技术要点: 1.高德地图 API的使用 2.定位 ,查询路线,公交查询等地图相关技术 3.源码带有非常详 细的中文注释 ...... 详细介绍: 1. 高德地图API的使用 本套实例采 ...
- OpenERP|ODOO高德地图应用
发布时间:2015-04-06 11:01:37来源:http://www.chinamaker.net 在openerp中的fleet模块,每一个车辆都有地图应用.默认采用的是谷歌地图,但是在应用得 ...
- 【高德地图API】汇润做爱地图技术大揭秘
原文:[高德地图API]汇润做爱地图技术大揭秘 昨日收到了高德地图微信公众号的消息推送,说有[一大波免费情趣用品正在袭来],点进去看了一眼,说一个电商公司(估计是卖情趣用品的)用高德云图制作了一张可以 ...
- 高德地图JavaScript API开发研究
高德地图JavaScript API是一套用JavaScript 语言编写的应用程序接口,可以通过各种API接口向地图添加内容,创建功能丰富.交互性强的地图应用.高德地图JavaScript API ...
- 【高德地图API】从零开始学高德JS API(五)路线规划——驾车|公交|步行
原文:[高德地图API]从零开始学高德JS API(五)路线规划——驾车|公交|步行 先来看两个问题:路线规划与导航有什么区别?步行导航与驾车导航有什么区别? 回答: 1.路线规划,指的是为用户提供3 ...
- 【高德地图API】那些年我们一起开发的APP—即LBS应用模式分享
原文:[高德地图API]那些年我们一起开发的APP—即LBS应用模式分享 摘要:利用地图API都能做些什么应用呢?应用商店里所有的分类,都可以结合上LBS来丰富应用.除了传统的生活服务应用,还有新潮的 ...
- 高德地图API(流程法)整理分析
[高德地图API(流程法)分析]: 前言:公司现在的网约车项目,使用的是高德地图,因为地图导航这一块的功能占比量比较大,为了方便大家对高德地图API的了解和学习使用,使用流程图把高德API分析整理了下 ...
- 高德地图API INVALID_USER_SCODE问题以及keystore问题
今天这篇文章会给大家介绍三个问题: 1,接入API时出现invalid_user_scode问题 首先进行第一个大问题,接入高德地图API时出现invalid_user_scode问题 因为项目需要接 ...
随机推荐
- [HNOI2004]敲砖块
题目描述 在一个凹槽中放置了 n 层砖块.最上面的一层有n 块砖,从上到下每层依次减少一块砖.每块砖 都有一个分值,敲掉这块砖就能得到相应的分值,如下图所示. 14 15 4 3 23 33 33 7 ...
- [hdu5608]function
题意:$\sum_{d|n}f(d)=n^{2}-3n+2$,求$\sum_{i=1}^{n}f(i)\mod 10^{9}+7$ , $n \leqslant 10^{9}$ $\left( T \ ...
- Notepad++连接Centos
Notepad++设置 插件 -- > plugin Manager --> show plugin manager --> NppFtp 安装重启notepad++ 插件 --& ...
- 本地缓存,Redis缓存,数据库DB查询(结合代码分析)
问题背景 为什么要使用缓存?本地缓存/Redis缓存/数据库查询优先级? 一.为什么要使用缓存 原因:CPU的速度远远高于磁盘IO的速度问题:很多信息存在数据库当中的,每次查询数据库就是一次IO操作所 ...
- Python中list的功能介绍
List的功能介绍 1. 列表的两种方法 1. 列表的内置方法 列表的相加 格式:x.__add__(y)等同于x+y 例如:list1 = [1,2,3] print(list1.__add__([ ...
- quartz入门详解
http://www.cnblogs.com/monian/p/3822980.html http://www.blogjava.NET/baoyaer/articles/155645.html 另: ...
- Helm 架构 - 每天5分钟玩转 Docker 容器技术(161)
在实践之前,我们先来看看 Helm 的架构. Helm 有两个重要的概念:chart 和 release. chart 是创建一个应用的信息集合,包括各种 Kubernetes 对象的配置模板.参数定 ...
- MongoDB $type条件操作符
描述 在本章节中,我们将继续讨论MongoDB中条件操作符 $type. $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. MongoDB 中可以使用的类型如下表所示: 类型 ...
- Windows下使用Vim极简入门
0.下载与安装 在vim官网下载 1.Vim常见的几种模式: 一般模式:主要用于浏览,不能随意删除.修改等.按Esc进入该模式. 插入模式:类似平常我们打开记事本后所在的模式.在命令模式下按i进入. ...
- 安卓onTextChanged参数解释及实现EditText字数监听 Editable使用
原作者部分修改部分 补充部分 补充部分2 补充部分3 补充部分4 Editable 尊重原作者:此篇文章是借鉴原作者地址 的博文 并进行修改和增加补充说明,我只是补充和修改: 我感觉这篇文章经过我的补 ...