配色: 字号:
高德地图车机版API演示程序
2016-10-10 | 阅:  转:  |  分享 
  
高德地图车机版API演示程序

做车载的应该和这个程序打交道打的比较多吧,这里是我今天写的一个实现了他的API的一个演示程序



相对于其他的api来说,这个api已经相对挺完善的,如果想使用这个车机版地图,你需要去下载一些资源包,放在对应的位置然后联网激活,这些就不详细的说明了



概述



高德地图车机版(amapauto)第三方调用API是为整车厂、前后装主机厂、系统方案商、开发者等,提供的在自己系统或应用中调用高德地图车机版功能的一套方法。调用方可以根据业务需求,调用POI搜索、路线规划、地图操控、导航等功能,充分提升和完善系统及应用的车载体验。

适用环境



Android车机网页端或车机应用App

支持版本



支持Android高德地图车机版AppV1.1.0及以上版本

术语约定



Intent调用:Android平台术语,指代第三方应用调用高德地图车机版Android客户端的方式



我们主要来看下我们的程序,他只有一个ListView,所有我们的程序layout应该是:

activity_main.xml






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">




android:id="@+id/mListView"

android:layout_width="match_parent"

android:layout_height="match_parent"/>







我们的主程序就更好说话了

MainActivity



packagecom.liuguilin.com.amapsample;



importandroid.content.Intent;

importandroid.support.v7.app.AppCompatActivity;

importandroid.os.Bundle;

importandroid.util.Log;

importandroid.view.View;

importandroid.widget.AdapterView;

importandroid.widget.ArrayAdapter;

importandroid.widget.ListView;



importjava.util.ArrayList;

importjava.util.List;



/

高德车机版API演示程序

官网:http://lbs.amap.com/api/amapauto/#id004

by刘桂林

/

publicclassMainActivityextendsAppCompatActivity{



//TAG

privatestaticfinalStringTAG="AMapSample";

//列表

privateListViewmListView;

//适配器

privateArrayAdapteradapter;

//数据

privateListmList;

//应用名称

privateStringappName;



@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);



initData();

initView();

}



/

初始化数据/便于扩展

/

privatevoidinitData(){

mList=newArrayList<>();

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.打开收藏夹");

}



/

初始化

/

privatevoidinitView(){

//程序名

appName=getString(R.string.app_name);

Log.i(TAG,"appName:"+appName);

mListView=(ListView)findViewById(R.id.mListView);

adapter=newArrayAdapter(this,android.R.layout.simple_list_item_1,mList);

mListView.setAdapter(adapter);

mListView.setOnItemClickListener(newAdapterView.OnItemClickListener(){

@Override

publicvoidonItemClick(AdapterViewadapterView,Viewview,inti,longl){

parsing(i);

}

});

}



/

操作



@parami

/

privatevoidparsing(inti){

Log.i(TAG,"position:"+i);

switch(i){

//1.进入主图进入高德地图车机版主图页面

case0:

openMapOperation("androidauto://rootmap?sourceApplication="+appName);

break;

//2.显示我的位置显示当前车位

case1:

openMapOperation("androidauto://myLocation?sourceApplication="+appName);

break;

//3.路线规划输入起点和终点,计算驾车线路。支持按偏好规划路线

case2:

//起点纬度

doubleslat=36.2;

//起点经度

doubleslon=116.1;

//起点名称

Stringsname="abc";

//终点纬度

doubledlat=36.3;

//终点经度

doubledlon=116.2;

//终点名称

Stringdname="def";

/

起终点是否偏移

0:lat和lon是已经加密后的,不需要国测加密;

1:需要国测加密

/

intdev=0;

/

驾车方式

=0(速度快)

=1(费用少)

=2(路程短)

=3不走高速

=4(躲避拥堵)

=5(不走高速且避免收费)

=6(不走高速且躲避拥堵)

=7(躲避收费和拥堵)

=8(不走高速躲避收费和拥堵)

/

intm=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名称,得出该点的经纬度坐标

case3:

Stringaddr="深圳世界之窗";

openMapOperation("androidauto://viewGeo?sourceApplication="+appName+"&addr="+addr);

break;

//5.通过经纬度给定经纬度坐标,得出相应的POI地址名称

case4:

doublelat=39.9;

doublelon=116.48;

//起终点是否偏移(0:lat和lon是已经加密后的,不需要国测加密;1:需要国测加密)

intdev4=0;

openMapOperation("androidauto://viewReGeo?sourceApplication="+appName+"&lat="+lat+"&lon="+lon+"&dev="+dev4);

break;

//6.搜索地点搜索周边的超市、银行、加油站等分类信息。

case5:

//搜索POI的关键字,如银行、加油站

Stringkeywords="电影院";

//起终点是否偏移(0:lat和lon是已经加密后的,不需要国测加密;1:需要国测加密)

intdev5=0;

//这里官网提供了两种方式,经纬度和兴趣点,有兴趣的可以自己去官网

openMapOperation("androidauto://poi?sourceApplication="+appName+"&keywords="+keywords+"&dev="+dev5+"Wod");

break;

//7.关键字导航根据名称,启动高德地图车机版搜索终点,选择终点后开始启动导航。

case6:

//搜索关键字

Stringkeywords6="方恒国际中心";

/

导航方式

0速度快

1费用少

2路程短

3不走高速

4躲避拥堵

5不走高速且避免收费

6不走高速且躲避拥堵

7躲避收费和拥堵

8不走高速躲避收费和拥堵

/

intstyle=2;

openMapOperation("androidauto://keywordNavi?sourceApplication="+appName+"&keywords="+keywords6+"&style="+style);

break;

//8.周边分类搜索周边的超市、银行、加油站等分类信息

case7:

Stringkeywords7="银行";

//dev照旧

//官网提供两种方式

openMapOperation("androidauto://arroundpoi?sourceApplication="+appName+"&keywords="+keywords7+"&dev=0");

break;

//9.直接导航输入终点,以用户当前车位为起点开始路线导航

case8:

//POI名称

Stringpoiname="fangheng";

//纬度

doublelat8=36.547901;

//经度

doublelon8=104.258354;

//dev和style照旧

//貌似不需要action_view

openMapOperation("androidauto://navi?sourceApplication="+appName+"&poiname="+poiname+

"&lat="+lat8+"&lon="+lon8+"&dev=1&style=2");

break;

//10.地图标注根据名称或经纬度,启动高德地图车机版展示一个标注点

case9:

//POI名称

Stringpoiname9="abc";

//纬度

doublelat9=36.2;

//经度

doublelon9=116.1;

//dev照旧

openMapOperation("androidauto://viewMap?sourceApplication="+appName+"&poiname=abc&lat="+lat9+"&lon="+lon9+"&dev=0");

break;

//11.地图操作对地图进行操作,开关实时路况,缩放地图,切换视角。可组合

case10:

/

0实时路况开

1实时路况关

/

inttraffic=0;

/

0缩小地图

1放大地图

/

intzoom=1;

/

0切换2d车上

1切换2d北上

2切换3d车上支持

/

intswitchView=2;

openMapOperation("androidauto://mapOpera?sourceApplication="+appName+"&traffic="+traffic+"&zoom="+zoom+"&switchView="+switchView);

break;

//12.特殊点导航回家/公司

case11:

/

home回家

crop回公司

/

Stringdest="home";

openMapOperation("androidauto://navi2SpecialDest?sourceApplication="+appName+"&dest="+dest);

break;

//13.全程概览进入或退出全程概览状态。仅在导航引导状态下响应

case12:

/

0进入全览

1退出全览

/

intisShowPreview=0;

openMapOperation("androidauto://naviPreview?sourceApplication="+appName+"&isShowPreview="+isShowww.shanxiwang.netwPreview);

break;

//14.路线偏好导航引导状态下,按偏好组合重新规划路线

case13:

//躲避拥堵0开;1关

intisAvoidJam=0;

//避免收费0开;1关

intisVoidCharge=0;

//不走高速0开;1关

intisAvoidHighway=0;

//高速优先0开;1关

intusingHighway=0;

openMapOperation("androidauto://naviRoutePrefer?sourceApplication="+appName+

"&isAvoidJam="+isAvoidJam+"&isVoidCharge="+isVoidCharge+

"&isAvoidHighway="+isAvoidHighway+"&usingHighway="+usingHighway);

break;

//15.路线偏好Ex导航引导状态下,按规划原则重新规划路线

case14:

/

导航方式

0速度快

1费用少

2路程短

3不走高速

4躲避拥堵

5不走高速且避免收费

6不走高速且躲避拥堵

7躲避收费和拥堵

8不走高速躲避收费和拥堵

/

inttype=0;

openMapOperation("androidauto://naviRoutePreferEx?sourceApplication="+appName+"&type="+type);

break;

//16.取消导航退出导航引导状态,回主图

case15:

openMapOperation("androidauto://naviExit?sourceApplication="+appName);

break;

//17.退出高德地图车机版退出高德地图车机版应用

case16:

openMapOperation("androidauto://appExit?sourceApplication="+appName);

break;

//18.打开收藏夹打开“管理收藏夹”界面

case17:

openMapOperation("androidauto://openFavorite?sourceApplication="+appName);

break;

}

}



/

启动地图操作



@paramurl

/

privatevoidopenMapOperation(Stringurl){

Intentintent=newIntent("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统一一下而已,并没有什么技术含量,只是为了方便自己以后调用而已,嘻嘻,有兴趣的可以观摩一下

献花(0)
+1
(本文系网络学习天...首藏)