因工作需要,开始入门学习高德地图API。工作时间十分短,这个例子也只是在学习过程中慢慢摸索出来的。有哪里不对,希望高人出来指点。
先直接上个demo:
HTML部分:
<body>
<div id="container" tabindex="0"></div>
<div class="info" id="text">请用鼠标在地图上操作试试</div>
<div class="input-card" style="width:26rem">
<h4>地图点击相关事件</h4>
<div>
<div class="input-item">
<button id="clickOn" class="btn" style="margin-right:1rem;">开启添加事件</button>
<button id="clickOff" class="btn" style="margin-right:1rem;">关闭添加事件</button>
<button id="clearAll" class="btn">清除所有标记</button>
</div>
</div>
</div>
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.12&key=你的key值"></script>
<script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="https://webapi.amap.com/demos/js/liteToolbar.js"></script>
JS部分:
(1)构造一个Map
var map = new AMap.Map('container',{
zoom:14, //地图默认放大级别
});
(2)初始化单击事件
//覆盖物数组
var markers = new Array();
//单击事件初始化
function showInfoClick(e){
var text = '您在 [ '+e.lnglat.getLng()+','+e.lnglat.getLat()+' ] 的位置单击了地图!'
document.querySelector("#text").innerText = text;
//设置Marker
var marker = new AMap.Marker({
icon:'camera.jpg',//自定义图标
position:e.lnglat,
});
//创建右键菜单
var contextMenu = new AMap.ContextMenu();
contextMenu.addItem("操作1",function(){});
contextMenu.addItem("操作2",function(){});
contextMenu.addItem("清除标记",function(){
//清除当前覆盖物
map.remove(marker);
});
//绑定鼠标右击事件——弹出右键菜单
marker.on('rightclick', function (e) {
contextMenu.open(map, e.lnglat);
});
//为marker指定目标显示地图
map.add(marker);
markers.push(marker);
}
(3)初始化地图事件绑定、解除事件绑定:
//初始化地图绑定事件
function clickOn(){
log.success("绑定事件!");
map.on('click', showInfoClick);
map.on('dblclick', showInfoDbClick);
}
function clickOff(){
log.success("解除事件绑定!");
map.off('click', showInfoClick);
map.off('dblclick', showInfoDbClick);
}
(4)给按钮添加事件:
// 给按钮绑定事件
$('#clickOn').on('click',clickOn);
$('#clickOff').on('click',clickOff);
$('#clearAll').on('click',function(){
map.remove(markers);//清除所有覆盖物
});