高德地图开发说明
高德地图介绍
本次开发完全使用高德提供的API,实现移动端的地图显示,当前位置地图定位,给定坐标点数组Marker标记,实时动态轨迹绘制
具体使用方法
1.成为高德开发者,获取高德key
登录高德开发平台官网 http://lbs.amap.com/ 注册一个高德账号,注册成功后登录,点击右上角进入控制台,然后创建新的应用,选择你的应用类型,获得key值
2.加载高德地图API
引入js,css只需像普通js文件和css文件一样就行,不过高德的路径是个URL,不在本地,下面就是一个基本的地图显示用例
<!doctype html><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"> //兼容IE8<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width"> //更好的在手机端适配<title>基本地图展示</title><link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/> //引入的地图css<script src="http://webapi.amap.com/maps?v=1.3&key=您申请的key值"></script> //把申请的key值换掉<script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script> //引入的地图css</head><body><div id="container"></div> //地图盒子 不设宽高就是全屏显示<script>var map = new AMap.Map('container', { //显示地图resizeEnable: true, //是否支持缩放zoom:11, //缩放比例center: [116.397428, 39.90923] //地图中心});</script></body></html>
3.在地图里添加不同控件
AMap.plugin(['AMap.ToolBar','AMap.Scale','AMap.OverView','AMap.MapType'],function(){map.addControl(new AMap.ToolBar()); //添加工具条map.addControl(new AMap.Scale()); //添加比例尺map.addControl(new AMap.OverView({isOpen:true})); //添加鹰眼map.addControl(new AMap.MapType()); //添加卫星地图和平面图切换 路况});
4.地图定位当前位置
map.plugin('AMap.Geolocation', function() { //定位参数AMap.Geolocation和添加控件都写在一个数组里,与添加控件原理相同geolocation = new AMap.Geolocation({ //下面参数可根据需要增加或减少enableHighAccuracy: true,//是否使用高精度定位,默认:truetimeout: 10000, //超过10秒后停止定位,默认:无穷大maximumAge: 0, //定位结果缓存0毫秒,默认:0convert: true, //自动偏移坐标,偏移后的坐标为高德坐标,默认:trueshowButton: true, //显示定位按钮,默认:truebuttonPosition: 'LB', //定位按钮停靠位置,默认:'LB',左下角buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)showMarker: true, //定位成功后在定位到的位置显示点标记,默认:trueshowCircle: true, //定位成功后用圆圈表示定位精度范围,默认:truepanToLocation: true, //定位成功后将定位到的位置作为地图中心点,默认:truezoomToAccuracy:true //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false});map.addControl(geolocation);geolocation.getCurrentPosition(); //获得当前位置AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息AMap.event.addListener(geolocation, 'error', onError); //返回定位出错信息});//解析定位结果function onComplete(data) {var str=['定位成功'];str.push('经度:' + data.position.getLng());str.push('纬度:' + data.position.getLat());str.push('精度:' + data.accuracy + ' 米');str.push('是否经过偏移:' + (data.isConverted ? '是' : '否'));document.getElementById('tip').innerHTML = str.join('<br>');}//解析定位错误信息function onError(data) {document.getElementById('tip').innerHTML = '定位失败';}
5.根据给定不同点的经纬度,在地图上标注
map.clearMap(); //首先清除地图覆盖物var markers = [{ //给定标记的点的集合icon: 'http://webapi.amap.com/theme/v1.3/markers/n/mark_b1.png', //标注的图片,可自定义本地设置position: [116.205467, 39.907761] //需要标注的经纬度}, {icon: 'http://webapi.amap.com/theme/v1.3/markers/n/mark_b2.png',position: [116.368904, 39.913423]}, {icon: 'http://webapi.amap.com/theme/v1.3/markers/n/mark_b3.png',position: [116.305467, 39.807761]}];// 添加一些分布不均的点到地图上,地图上添加三个点标记,作为参照markers.forEach(function(marker) { //对标注点遍历new AMap.Marker({map: map,icon: marker.icon,position: [marker.position[0], marker.position[1]],offset: new AMap.Pixel(-12, -36) //偏移位置});});
6.一个完整的地图包含定位,添加几个工具条,位置标注,代码如下
<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1"><meta charset="UTF-8"><title></title><link rel="stylesheet" href="css/font-icons.css"><link rel="stylesheet" href="css/iuapmobile.um.css"><link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/><style>.amap-touch-toolbar .amap-zoomcontrol{bottom:-30px;right:0px;}</style><script src="js/Frameworks/iuapmobile.frameworks.core.js" ></script><script src="js/summer.js" ></script><script src="js/jquery.min.js" ></script><script src="js/Frameworks/iuapmobile.frameworks.ui.js" ></script><script src="js/index.js" ></script><script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=d13df96ab37812514b272b0d34a25092</script>//此处 引用高德插件,须带上开发key,请自行替换</head><body><div class="um-win" id="index"><div id="header" class="um-header"><a href="#" class="um-back">返回</a><h3>标题</h3><a href="#" class="um-header-right ti-plus f20"></a></div><div id="main" class="um-content p15"><div id="container"></div><div class="button-group"><input type="button" class="button mr20" value="删除多个点标记" id="clearMarker"/></div></div></div><script>$(function() {$('#container').parent().css('position','relative');var map, geolocation,scale,toolbar;//加载地图,调用浏览器定位服务map = new AMap.Map('container', {resizeEnable: true,zoom:11,});map.plugin(['AMap.Geolocation','AMap.Scale','AMap.ToolBar', 'AMap.MapType'], function() { //添加定位控件geolocation = new AMap.Geolocation({ //定位设置enableHighAccuracy: true,//是否使用高精度定位,默认:trueconvert: true, //自动偏移坐标,偏移后的坐标为高德坐标,默认:trueshowCircle: true, //定位成功后用圆圈表示定位精度范围,默认:truetimeout: 10000, //超过10秒后停止定位,默认:无穷大buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)zoomToAccuracy: true, //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:falsebuttonPosition:'RB',});scale=new AMap.Scale(); //添加比例尺控件toolbar=new AMap.ToolBar(); //添加工具栏控件maptype=new AMap.MapType();map.addControl(geolocation);map.addControl(scale);map.addControl(toolbar);map.addControl(maptype);geolocation.getCurrentPosition();});map.clearMap(); // 清除地图覆盖物var markers = [{ //标记位置icon: 'http://webapi.amap.com/theme/v1.3/markers/n/mark_b1.png',position: [116.205467, 39.907761]}, {icon: 'http://webapi.amap.com/theme/v1.3/markers/n/mark_b2.png',position: [116.368904, 39.913423]}, {icon: 'http://webapi.amap.com/theme/v1.3/markers/n/mark_b3.png',position: [116.305467, 39.807761]}];// 添加一些分布不均的点到地图上,地图上添加三个点标记,作为参照var objMarker=[];markers.forEach(function(marker) {var marker=new AMap.Marker({map: map,icon: marker.icon,position: [marker.position[0], marker.position[1]],offset: new AMap.Pixel(-12, -36) //偏移位置});objMarker.push(marker);});AMap.event.addDomListener(document.getElementById('clearMarker'), 'click', function() {map.remove(objMarker);}, false);});</script></body>
文档更新时间: 2018-06-06 13:54