高德地图使用及常见问题解决

1.准备工作

引入高德地图JS API以及UI组件库(index.html)
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.3&key=ade4e9ff095772a5158a71bfab7a631a"></script>    //引入地图JS API    
<script src="//webapi.amap.com/ui/1.0/main.js"></script>    //引入地图UI组件库
添加地图容器,并为其指定id属性
 <div id="map"></div>
为地图容器设置宽高
#map {width:300px; height: 180px; }  

2.绘制地图

创建地图并设置常用参数
let map = new AMap.Map('map',{
    zoom: 16,//缩放级别
    center:[117.128255,36.662838],//地图中心点坐标
});
地图常用方法
//设置地图中心点
let position = new AMap.LngLat(117.128255,36.662838);
map.setCenter(position); 
//设置地图缩放级别
map.setZoom(15);
//设置地图状态
map.setStatus({
    dragEnable: false,//是否可拖动
    keyboardEnable: false,//是否可通过键盘控制
    doubleClickZoom: false,//是否可双击放大
    zoomEnable: false,//是否可缩放
    rotateEnable: false//是否可旋转
});
地图点标记
//添加一个点标记
let marker = new AMap.Marker({
    clickable: true, //是否可点击
    position: new AMap.LngLat(117.128255,36.662838), //标记位置
    icon: new AMap.Icon({//自定义图标
        size: new AMap.Size(30, 30), //图标显示大小
        image: "res/location_center.png",//图标路径
        imageSize: new AMap.Size(30,30)//图标缩放大小
    }),
    //绑定标记点击事件
    marker.on('click',()=>{
    })
});
map.add(marker);
//添加多个点标记
let markerList = [marker1, marker2, marker3];
map.add(markerList);
//移除点标记
map.remove(marker);

3.常用UI组件

地图UI控件
//设置DomLibrary,jQuery或者Zepto
AMapUI.setDomLibrary($);
//加载BasicControl,loadUI的路径参数为模块名中 'ui/' 之后的部分
AMapUI.loadUI(['control/BasicControl'], function(BasicControl) {
  //缩放控件
  map.addControl(new BasicControl.Zoom({
      position: 'lt', //left top,左上角
      showZoomNum: true //显示zoom值
  }));
  //图层切换控件
  map.addControl(new BasicControl.LayerSwitcher({
      position: 'rt' //right top,右上角
  }));
  //实时交通控件
  map.addControl(new BasicControl.Traffic({
      position: 'lb'//left bottom, 左下角
  }));
});
拖拽选址组件
AMapUI.loadUI(['misc/PositionPicker'], function(PositionPicker) {
    let positionPicker = new PositionPicker({
        mode:'dragMap',//拖动地图模式
        map: map,
        iconStyle:{//自定义图标
            url: './res/drag.png',
            size:[30,30],  //要显示的点大小,将缩放图片
            ancher:[15,15],//锚点的位置,即被size缩放之后,图片的什么位置作为选中的位置
        }
    });
    //成功回调函数
    positionPicker.on('success', function(positionResult) {
    });
    //失败回调函数
    positionPicker.on('fail', function(positionResult) {
    });
});
//开始选址
positionPicker.start();
//停止选址
positionPicker.stop();

4.坐标系转换(高德地图API提供的转换方法不可用)

//百度坐标转高德坐标(传入经度、纬度)
transform:function(bd_lng, bd_lat) {
    let X_PI = Math.PI * 3000.0 / 180.0;
    let x = bd_lng - 0.0065;
    let y = bd_lat - 0.006;
    let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI);
    let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI);
    let gd_lng = z * Math.cos(theta);
    let gd_lat = z * Math.sin(theta);
    return {lng: gd_lng, lat: gd_lat}
}

// 高德坐标转百度坐标(传入经度、纬度)
transform:function(gd_lng, gd_lat) {
    let X_PI = Math.PI * 3000.0 / 180.0;
    let x = gd_lng,
    let y = gd_lat;
    let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI);
    let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * X_PI);
    let bd_lng = z * Math.cos(theta) + 0.0065;
    let bd_lat = z * Math.sin(theta) + 0.006;
    return {lat: bd_lat,lng: bd_lng};
}

5.隐藏高德地图logo及copyright字样

.amap-logo{
    display: none;
}

.amap-copyright{
    opacity:0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,683评论 4 61
  • 云韵羞隐去,再度夕阳红。曾几梦经有,随缘此时生。 复帖
    一片绿芽阅读 1,283评论 0 0
  • 过年了,按照习俗得买碗筷。 家家悦今年是不进碗了。所以打算去银座。 不知道怎么挑选,所以只好选靠谱的地方了。 小时...
    辋水沦涟阅读 2,578评论 1 3
  • 咨询电话:0317-5511775、手机:18833785700、17331768889查看更多声测管车间生产视频...
    shengceugan阅读 5,117评论 0 0
  • 别人工作忙的没时间,你信奉鲁迅先生“时间就是海绵的水,只要挤就会有”,所以你在看盘;别人下班了,看书学习,你在看盘...
    淡定蚂蚁阅读 3,471评论 0 0

友情链接更多精彩内容