百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

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

wptr33 2025-04-11 08:29 25 浏览

使用方法

在桌面上新建一个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>



相关推荐

每天一个编程技巧!掌握这7个神技,代码效率飙升200%

“同事6点下班,你却为改BUG加班到凌晨?不是你不努力,而是没掌握‘偷懒’的艺术!本文揭秘谷歌工程师私藏的7个编程神技,每天1分钟,让你的代码从‘能用’变‘逆天’。文末附《Python高效代码模板》,...

Git重置到某个历史节点(Sourcetree工具)

前言Sourcetree回滚提交和重置当前分支到此次提交的区别?回滚提交是指将改动的代码提交到本地仓库,但未推送到远端仓库的时候。...

git工作区、暂存区、本地仓库、远程仓库的区别和联系

很多程序员天天写代码,提交代码,拉取代码,对git操作非常熟练,但是对git的原理并不甚了解,借助豆包AI,写个文章总结一下。Git的四个核心区域(工作区、暂存区、本地仓库、远程仓库)是版本控制的核...

解锁人生新剧本的密钥:学会让往事退场

开篇:敦煌莫高窟的千年启示在莫高窟321窟的《降魔变》壁画前,讲解员指着斑驳色彩说:"画师刻意保留了历代修补痕迹,因为真正的传承不是定格,而是流动。"就像我们的人生剧本,精彩章节永远...

Reset local repository branch to be just like remote repository HEAD

技术背景在使用Git进行版本控制时,有时会遇到本地分支与远程分支不一致的情况。可能是因为误操作、多人协作时远程分支被更新等原因。这时就需要将本地分支重置为与远程分支的...

Git恢复至之前版本(git恢复到pull之前的版本)

让程序回到提交前的样子:两种解决方法:回退(reset)、反做(revert)方法一:gitreset...

如何将文件重置或回退到特定版本(怎么让文件回到初始状态)

技术背景在使用Git进行版本控制时,经常会遇到需要将文件回退到特定版本的情况。可能是因为当前版本出现了错误,或者想要恢复到之前某个稳定的版本。Git提供了多种方式来实现这一需求。...

git如何正确回滚代码(git命令回滚代码)

方法一,删除远程分支再提交①首先两步保证当前工作区是干净的,并且和远程分支代码一致$gitcocurrentBranch$gitpullorigincurrentBranch$gi...

[git]撤销的相关命令:reset、revert、checkout

基本概念如果不清晰上面的四个概念,请查看廖老师的git教程这里我多说几句:最开始我使用git的时候,我并不明白我为什么写完代码要用git的一些列指令把我的修改存起来。后来用多了,也就明白了为什么。gi...

利用shell脚本将Mysql错误日志保存到数据库中

说明:利用shell脚本将MYSQL的错误日志提取并保存到数据库中步骤:1)创建数据库,创建表CreatedatabaseMysqlCenter;UseMysqlCenter;CREATET...

MySQL 9.3 引入增强的JavaScript支持

MySQL,这一广泛采用的开源关系型数据库管理系统(RDBMS),发布了其9.x系列的第三个更新版本——9.3版,带来了多项新功能。...

python 连接 mysql 数据库(python连接MySQL数据库案例)

用PyMySQL包来连接Python和MySQL。在使用前需要先通过pip来安装PyMySQL包:在windows系统中打开cmd,输入pipinstallPyMySQL ...

mysql导入导出命令(mysql 导入命令)

mysql导入导出命令mysqldump命令的输入是在bin目录下.1.导出整个数据库  mysqldump-u用户名-p数据库名>导出的文件名  mysqldump-uw...

MySQL-SQL介绍(mysql sqlyog)

介绍结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同...

MySQL 误删除数据恢复全攻略:基于 Binlog 的实战指南

在MySQL的世界里,二进制日志(Binlog)就是我们的"时光机"。它默默记录着数据库的每一个重要变更,就像一位忠实的史官,为我们在数据灾难中提供最后的救命稻草。本文将带您深入掌握如...