地图如今已经离不开我们大家的生活了 ,作为开发者来说 ,能够尽可能开发一款完善的地图也是至关重要的
因此我对高德地图进行了一些研究,
下面我将 把我对高德地图的研究分享给大家
1.在高德应用管理后台创建新应用,获取AppKey
在这里我们会看到以下界面,它会让我们填入发布板SHA1值,那么这个SHA1值如何获取呢


SHA1的获取:
打开cmd命令在cmd控制台上 依次输入
cd .android
keytool -list -v -keystore debug.keystore
android
即可得到SHA1值,如下:

提交之后便会获取到AppKey



2.在高德地图开发平台上下载Android地图SDK,在libs 报下导入so库及jar包

2.在build.gradle加入以下
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
compile files('libs/AMap_Location_V3.4.0_20170427.jar')
compile files('libs/AMap_Search_V5.1.0_20170517.jar')
compile files('libs/Android_Map3D_SDK_V5.1.0_20170518.jar')
3.在清单文件中加权限和配置AppKey
<!--允许程序打开网络套接字-->
<uses-permissionandroid:name="android.permission.INTERNET"/>
<!--允许程序设置内置sd卡的写权限-->
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--允许程序获取网络状态-->
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--允许程序访问WiFi网络信息-->
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
<!--允许程序读写手机状态和身份-->
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>
配置AppKey
<meta-dataandroid:name="com.amap.api.v2.apikey"android:value="a530a2c6fa8f40ed4a486745d20c1ebe"/>
<serviceandroid:name="com.amap.api.location.APSService"></service>
4.在xml中写mapview 控件
<com.amap.api.maps.MapView
android:layout_width="368dp"
android:layout_height="495dp"
android:id="@+id/mapview"
tools:layout_editor_absoluteY="8dp"
tools:layout_editor_absoluteX="8dp"></com.amap.api.maps.MapView>
5.在avtivity 中显示定位蓝点
mapview= (MapView) findViewById(R.id.mapview);
//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
mapview.onCreate(savedInstanceState);// 此方法须覆写,虚拟机需要在很多情况下保存地图绘制的当前状态。
//初始化地图控制器对象
if(aMap== null) {
aMap= mapview.getMap();
}
myLocationStyle= newMyLocationStyle();//初始化定位蓝点样式类myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);//连续定位、且将视角移动到地图中心点,定位点依照设备方向旋转,并且会跟随设备移动。(1秒1次定位)如果不设置myLocationType,默认也会执行此种模式。
myLocationStyle.interval(2000);//设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。
myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER);//连续定位、蓝点不会移动到地图中心点,定位点依照设备方向旋转,并且蓝点会跟随设备移动。
aMap.setMyLocationStyle(myLocationStyle);//设置定位蓝点的Styl
// aMap.getUiSettings().setMyLocationButtonEnabled(true);设置默认定位按钮是否显示,非必需设置。
aMap.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。
@Override
protected voidonDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图
mapview.onDestroy();
}
@Override
protected voidonResume() {
super.onResume();
//在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图
mapview.onResume();
}
@Override
protected voidonPause() {
super.onPause();
//在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制
mapview.onPause();
}
6.POI检索
query= newPoiSearch.Query(et_point,"",et_city);
//keyWord表示搜索字符串,
//第二个参数表示POI搜索类型,二者选填其一,选用POI搜索类型时建议填写类型代码,码表可以参考下方(而非文字)
//cityCode表示POI搜索区域,可以是城市编码也可以是城市名称,也可以传空字符串,空字符串代表全国在全国范围内进行搜索
query.setPageSize(10);// 设置每页最多返回多少条poiitem
// query.setPageNum(currentPage);//设置查询页码
poiSearch= newPoiSearch(this,query);
poiSearch.setOnPoiSearchListener(this);
poiSearch.searchPOIAsyn();
@Override
public voidonPoiSearched(PoiResult poiResult,inti) {
aMap.clear();
ArrayList<PoiItem> pois = poiResult.getPois();
for(PoiItem poiItem : pois) {
LatLonPoint latLonPoint = poiItem.getLatLonPoint();
LatLng latLng =newLatLng(latLonPoint.getLatitude(), latLonPoint.getLongitude());
MarkerOptions markerOption =newMarkerOptions().position(latLng).title(poiItem.toString()).snippet("去吃吧");
aMap.addMarker(markerOption);
}
}
7.点击覆盖物并规划线路(要在源码中复制几个类)
aMap.setOnMarkerClickListener(newAMap.OnMarkerClickListener() {
@Override
public booleanonMarkerClick(Marker marker) {
//获取起点经纬度
Location myLocation =aMap.getMyLocation();
//获取终点经纬度
LatLng position = marker.getPosition();
LatLonPoint from=newLatLonPoint(myLocation.getLatitude(),myLocation.getLongitude());
LatLonPoint to=newLatLonPoint(position.latitude,position.longitude);
RouteSearch.FromAndTo fromAndTo =newRouteSearch.FromAndTo(from,to);
RouteSearch.DriveRouteQuery query =newRouteSearch.DriveRouteQuery(fromAndTo, RouteSearch.DRIVING_MULTI_CHOICE_AVOID_CONGESTION_NO_HIGHWAY,null,null,"");
RouteSearch routeSearch =newRouteSearch(MainActivity.this);
routeSearch.setRouteSearchListener(MainActivity.this);
routeSearch.calculateDriveRouteAsyn(query);
return false;
}
});
@Override
public voidonDriveRouteSearched(DriveRouteResult result,interrorCode) {
aMap.clear();// 清理地图上的所有覆盖物
if(errorCode == AMapException.CODE_AMAP_SUCCESS) {
if(result !=null&& result.getPaths() !=null) {
if(result.getPaths().size() >0) {
finalDrivePath drivePath = result.getPaths()
.get(0);
DrivingRouteOverlay drivingRouteOverlay =newDrivingRouteOverlay(
this,aMap, drivePath,
result.getStartPos(),
result.getTargetPos(),null);
drivingRouteOverlay.setNodeIconVisibility(false);//设置节点marker是否显示
drivingRouteOverlay.setIsColorfulline(true);//是否用颜色展示交通拥堵情况,默认true
drivingRouteOverlay.removeFromMap();
drivingRouteOverlay.addToMap();
drivingRouteOverlay.zoomToSpan();
}else if(result !=null&& result.getPaths() ==null) {
ToastUtil.show(this, R.string.no_result);
}
}else{
ToastUtil.show(this, R.string.no_result);
}
}else{
ToastUtil.showerror(this.getApplicationContext(), errorCode);
}
}
哈哈 到此结束了 ,以后有空在写,如果哪里写的不对还请各位大神指点

高德地图基本开发流程相关推荐

  1. 【高德地图WEB开发】 入门篇(地图/搜索/经纬度/缩放层级)

    前言 本篇文章是高德地图web开发入门篇,实现地图搜索等基本功能,后续会继续更新地图标记点.驾车.骑行.货车等单地点\多地点导航.公交路线.兴趣周边点.及其他地图功能开发文章,所有功能均使用js实现, ...

  2. 高德地图API开发二三事(一)如何判断点是否在折线上及引申思考

    最近使用高德地图 JavaScript API 开发地图应用,提炼了不少心得,故写点博文,做个系列总结一下,希望能帮助到LBS开发同胞们. 项目客户端使用高德地图 JavaScript API,主要业 ...

  3. [iOS]高德地图SDK开发--准备篇

    本文是对高德地图SDK使用的总结,对于高德地图不做过多介绍,可直接登录其官网开放平台进行了解; PS: 这里主要是讲解地图使用的准备工作,最后,以显示地图并定位到当前位置来验证;对于其他的使用,可参看 ...

  4. Android高德地图基本开发/在线高德离线地图开发/断网使用离线地图(Assets文件夹的使用)

    文章目录 高德SDK基本使用 前置操作 需求一:显示地图,并以当前所在位置为中心 权限申请 布局功能代码 活动功能代码 效果展示 需求二:离线地图(直接添加到应用端项目内) 需求三 :点击数据后以数据 ...

  5. 高德地图Amap开发实践

    一.简介: 高德开放平台是国内技术领先的LBS(Location Based Services,基于位置的服务)服务提供商,拥有先进的数据融合技术和海量的数据处理能力.高德开放平台向广大开发者提供覆盖 ...

  6. 高德地图H5开发总结笔记

    高德地图总结笔记 地图初始化 信息点坐标 路线规划与导航 大概就这么些,因为之前没接触过这方面一直都觉得挺复杂的实际开发感觉还算ok,全程干货走起. 1.地图初始化 1.1创建项目Key 想使用高德的 ...

  7. Android实现高德地图定位详细流程

     要实现高德地图定位呢,首先需要做好以下几步准备:  如果你嫌笔者写的不好或者懒得看,只需要代码的话,请选择: github:点击打开链接,此连接可能和文章内容有所出入,因为我可能会做后期的开发使用. ...

  8. java调用高德地图API开发,高德在线地图开发——未完待续

    这是目录 一.引入高德地图API 二.高德地图开发 1.定义一个div来存放地图 2.生成地图 3.添加一个跳跃的点 4.添加控件 5.有其他需要的请留言 一.引入高德地图API 高德地图官方示例:h ...

  9. 高德地图 API 开发 amap-vue

    标题amap-vue 是对高德地图的二次封装的一个插件 适用于 vue amap-vue官方的介绍: AMap-Vue 是一个基于 Vue.js 的高德地图 AMap JSAPI 封装. 通过它,你能 ...

  10. 百度地图定位开发流程

    表达能力真的有点挫,所以都没有习惯写博客,但是,学习了一个知识点,也要记录一下,方便下次调用的时候,可以快速的找到. 这次就是记录一下百度地图的引用流程.主要是定位这个功能在我们平时的项目中用的比较多 ...

最新文章

  1. linux rpm找不到命令_Linux安装软件
  2. PowerDesigner基本使用 - 创建业务处理模型BPM
  3. 北京内推 | 美团用户平台NLP中心招聘图学习(GNN)方向实习生
  4. AE CreateFeatureClass 创建shp. 删除shp. 向shp中添加要素
  5. .NET异步编程之新利器——Task与Await、Async
  6. 被低估的“败家爷们”
  7. Unity对接Steam SDK
  8. wxpython学习笔记
  9. Vue写的一个网站项目
  10. 计算机静音图标无法更改怎么办,声音图标没了不要着急,用金山毒霸2011进行修复 - 金山安全专题 - 声音图标没了怎么办? - 安全专题...
  11. VC MFC 发送模仿键盘消息
  12. 侙程序错误怎么找c语言,log4j 施用 - 汉字转换成拼音的种(转) - 遏止EditText弹出输入法_169IT.COM...
  13. 西雅图亚马逊1个月入职日记,传闻中的“血汗工厂”真实存在吗?
  14. MSF的辅助扫描模块(信息搜集)
  15. laydate使用官方使用方法
  16. 数据存储(Po累Po累)
  17. 青龙面板2.8版本+Ninja 保姆级 服务器安装jd代挂教程——(二)
  18. php生成gif动态图片_动态生成gif格式的图像要注意?
  19. JAVA怎么批量更新mysql_java 批量添加、批量更新 操作数据库
  20. 快速阅读等三种读书方法

热门文章

  1. 英特尔收购网络芯片创业公司Barefoot Networks
  2. Scratch捡垃圾游戏 电子学会图形化编程scratch等级考试三级真题答案2019-12
  3. 【白皮书】以太坊 (Ethereum ):下一代智能合约和去中心化应用平台
  4. torch.masked_select()和Tensor.masked_scatter()的用法
  5. spark JAVA 开发环境搭建及远程调试
  6. OMML2MML.XSL 微软数学标记语言源码
  7. 【Python面向对象编程】第19篇 只读属性
  8. 数学_余弦距离不满足三角不定式简单证明
  9. 【报错】UnboundLocalError: local variable ‘xxx‘ referenced before assignment
  10. 数据库操作的异常Cannot perform this operation because the connection pool has been close