优秀的编程知识分享平台

网站首页 > 技术文章 正文

高德地图经纬度坐标批量拾取(高德地图批量查询经纬度)

nanyue 2025-03-24 18:46:02 技术文章 3 ℃

使用方法

在桌面上新建一个index.txt文件,把下面的代码复制进去保存,再把文件名改成index.html保存,双击运行打开即可

功能:

1、点击鼠标拾取坐标。

2、地图缩放。

3、拾取坐标拖动。

4、坐标点标注编辑。

5、坐标点删除。

6、定位到拾取的坐标点。

7、Excel导出坐标点。

8、街景、卫星、混合地图切换


代码如下:




    
    
    
    鼠标拾取地图坐标
    <script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
    <script type="text/javascript" src='https://cdn.sheetjs.com/xlsx-0.19.2/package/dist/xlsx.full.min.js'></script>



编号 经度 纬度 描述 操作 定位
<script src="https://webapi.amap.com/maps?v=1.4.15&key=您申请的key值&plugin=AMap.Autocomplete"></script> <script type="text/javascript"> var save=false; var num=0; // 数组 let data = []; //标记 var markers = []; //高德地图 var map = new AMap.Map("container", { resizeEnable: true, expandZoomRange:true, zoom:20, //设置初始化级别 zooms:[3,20] //设置缩放级别范围 3-20 级 }); // 构造官方卫星、路网图层 var satelliteLayer = new AMap.TileLayer.Satellite(); var roadNetLayer = new AMap.TileLayer.RoadNet(); //设置鼠标样式 // map.setDefaultCursor("crosshair"); //为地图注册click事件获取鼠标点击出的经纬度坐标 map.on('click', function(e) { data.push({ id:num, lng:e.lnglat.R, lat:e.lnglat.Q, remark:"" }); initdata(); num++; }); //初始化数据 function initdata(){ //1、清除所有图标 markers=[]; map.clearMap(); //2、渲染图标 for(let i=0;i<data.length;i++){ //添加图标 var marker = new AMap.Marker({ // 将 html 传给 content content: '
'+data[i].id+'
', position:[data[i].lng,data[i].lat], offset:new AMap.Pixel(-9,-18), //中心点 draggable: true, // 设置是否可以拖拽 cursor: 'move', //拖动时的鼠标样式 raiseOnDrag: true, //托拽效果 extData:i //自定义数据 }); //鼠标移动 marker.on('mouseup',function (e3) { var index=e3.target.De.extData; data[index].lng=e3.lnglat.R; data[index].lat=e3.lnglat.Q; initdata(); }); markers.push(marker); //保存到标识列表中 } map.add(markers); //添加标识到地图中 /* * 渲染表格 */ let tbodyinner = document.getElementsByTagName("tbody")[0] let html = '' for(let i=0;i<data.length;i++){ html+=` ${data[i].id} ${data[i].lng} ${data[i].lat} ${data[i].remark} ` } // tbody.innerHTML="..."往tbody中添加内容 tbodyinner.innerHTML = html addEvents() save=false; } // 表格添加监听click事件 function addEvents(){ let subject = document.getElementsByName("grade") for(let i=0;i<subject.length;i++){ subject[i].addEventListener('click',function(e){ edit(this,e) }); } let delbut = document.getElementsByName("del") for(let i=0;i<delbut.length;i++){ delbut[i].addEventListener('click',function(e){ deletes(e) }); } let locate = document.getElementsByName("locate") for(let i=0;i<delbut.length;i++){ locate[i].addEventListener('click',function(e){ locates(e) }); } } //表格编辑 function edit(i,e){ let oldvalue = i.innerHTML; // 设置该标签为空 i.innerHTML = '' // 添加input对象 let inp = document.createElement("input") inp.value = oldvalue inp.classList.add("inputClass") // 添加子节点 i.appendChild(inp) // 获取文本中的内容 inp.select() // 失去焦点事件 inp.onblur = function(){ i.innerHTML = inp.value; var index=e.target.getAttribute("index"); data[index].remark=inp.value; } } //删除表格行数据 function deletes(e){ var r=confirm("确定删除?"); if (r==true){ var index=e.target.getAttribute("index"); //表格数据移除 data.splice(index, 1); //地图上移除标记 map.remove([markers[index]]); //列表中移除标记 markers.splice(index, 1); initdata(); } else{ console.log("取消"); } } //删除表格行数据 function locates(e){ var i=e.target.getAttribute("index"); map.setCenter([data[i].lng, data[i].lat]); //设置地图中心点 map.setZoom(18); //设置缩放等级 } //导出Excel function noDomExportExcel() { // 使用 XLSX.utils.aoa_to_sheet(excleData); var dataArry=[]; dataArry.push(["编号","经度","纬度","描述"]); for(let i=0;i<data.length;i++){ var arry=[]; arry.push(data[i].id); arry.push(data[i].lat.toString().padEnd(18,'0')); arry.push(data[i].lng.toString().padEnd(18,'0')); arry.push(data[i].remark); dataArry.push(arry); } // 制作工作表的方式有很多种,以数组和对象为例 const worksheet = XLSX.utils.aoa_to_sheet(dataArry); // 新建一个工作簿 const workbook = XLSX.utils.book_new();//创建虚拟workbook /* 将工作表添加到工作簿,生成xlsx文件(book,sheet数据,sheet命名)*/ XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); /* 输出工作表, 由文件名决定的输出格式(book,xlsx文件名称)*/ XLSX.writeFile(workbook, '标记信息.xlsx'); save=true; } //街道图层 function setRoadNetLayer() { map.remove(satelliteLayer); map.add(roadNetLayer); } //卫星图层 function setSatelliteLayer() { map.remove(roadNetLayer); map.add(satelliteLayer); } //混合图层 function setMixLayer() { map.add(roadNetLayer); map.add(satelliteLayer); } //在关闭页面时弹出确认提示窗口 window.onbeforeunload = function(event){ if(save){ console.log("已经导出,放心关闭"); }else{ return '您可能有数据没有导出,确认关闭?'; } }; </script>



最近发表
标签列表