百度坐标拾取后经纬度拆分 ,

Excel经纬度拆分技巧
本文介绍了一种在Excel中快速拆分经纬度坐标的方法,使用LEFT和RIGHT函数结合FIND函数,轻松将一串经纬度坐标分为经度和纬度两部分,适用于从百度地图等平台获取的坐标数据。

例如用百度地图坐标拾取获得坐标后

121.480248,31.236276

在excel中,可以用如下语句实现经纬度拆分

=LEFT(C3,FIND(",",C3)-1)   =RIGHT(C3,LEN(C3)-FIND(",",C3))

<think>我们正在处理用户的问题:关于百度地图批量坐标拾取系统经纬度的方法。 用户的需求是批量获取坐标经纬度)。百度地图提供了多种工具和方法,但批量拾取坐标通常需要借助开发者工具或API。 根据百度地图开放平台,我们可以通过以下方式实现: 1. 使用百度地图拾取坐标工具(单个点拾取,不适合大批量) 2. 使用百度地图JavaScript API的鼠标拾取事件(需要编程) 3. 使用百度地图开放平台的批量地理编码服务(将地址转换为经纬度) 4. 使用百度地图开放平台的批量逆地理编码服务(将经纬度转换为地址,但这里用户需要的是拾取坐标,即获取经纬度) 用户明确要求“批量坐标拾取”,因此我们需要提供批量获取经纬度的方法。 考虑到用户可能有两种情况: a) 有一批地址,需要转换为经纬度(地理编码) b) 需要在地图上手动批量选取多个点,然后获取这些点的经纬度 针对情况a,我们可以使用百度地图的地理编码API(包括批量功能)。 针对情况b,百度地图官方并没有提供直接的批量拾取工具,但我们可以通过JavaScript API来实现。 下面分别介绍这两种情况: 情况a:批量地址转经纬度(地理编码) 百度地图地理编码API支持批量请求(一次最多20个地址),需要申请ak(开发者密钥)。 文档参考:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding 情况b:手动批量拾取坐标 我们可以编写一个简单的网页,利用百度地图JavaScript API,实现点击地图添加标记,并记录每个标记点的经纬度,最后将所有点的经纬度导出。 由于用户可能没有编程基础,我们可以推荐一些已有的第三方工具(但需谨慎,因为第三方工具的安全性和准确性无法保证),或者提供简单的代码示例供技术人员使用。 鉴于用户直接询问方法,我们提供两种解决方案: 方案一(适用于有地址数据的情况):使用地理编码API批量转换 步骤: 1. 注册百度地图开放平台账号,申请ak。 2. 按照API文档构造HTTP请求,发送批量地址。 3. 解析返回的JSON数据,提取经纬度。 示例请求(单个地址): http://api.map.baidu.com/geocoding/v3/?address=北京市海淀区上地十街10号&output=json&ak=您的ak&callback=showLocation 批量请求可以通过循环发送,但注意每秒并发量限制(具体参考文档)。 方案二(适用于手动选点):使用JavaScript API编写页面 我们可以提供一个简单的HTML文件,用户可以在本地打开,然后在地图上点击,就会记录坐标,并显示在列表中,最后可以导出。 示例代码: ```html <!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>批量坐标拾取</title> <style type="text/css"> html{height:100%} body{height:100%;margin:0px;padding:0px} #container{height:100%} </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=您的ak"></script> </head> <body> <div id="container"></div> <div id="result" style="position:absolute; top:10px; right:10px; background:white; padding:10px;"></div> <script type="text/javascript"> var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); map.enableScrollWheelZoom(true); var points = []; // 存储所有点的数组 var markers = []; // 存储标记的数组 map.addEventListener("click", function(e) { var point = new BMap.Point(e.point.lng, e.point.lat); points.push(point); // 添加标记 var marker = new BMap.Marker(point); map.addOverlay(marker); markers.push(marker); // 更新结果显示 updateResult(); }); function updateResult() { var resultDiv = document.getElementById('result'); var content = "<h3>已选点("+points.length+"):</h3><ol>"; for (var i=0; i < points.length; i++) { content += "<li>经度: " + points[i].lng + ", 纬度: " + points[i].lat + "</li>"; } content += "</ol>"; content += '<button onclick="exportData()">导出数据</button>'; resultDiv.innerHTML = content; } function exportData() { var dataStr = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(points)); var downloadAnchorNode = document.createElement('a'); downloadAnchorNode.setAttribute("href", dataStr); downloadAnchorNode.setAttribute("download", "points.json"); document.body.appendChild(downloadAnchorNode); downloadAnchorNode.click(); downloadAnchorNode.remove(); } </script> </body> </html> ``` 注意:使用时需要将代码中的`您的ak`替换为实际的ak。 由于百度地图API的使用需要ak,用户需要先申请。 另外,批量地理编码API也有使用次数限制,免费额度足够一般使用。 综上所述,用户可以根据自己的需求选择合适的方法。 相关问题: 1. 如何申请百度地图开放平台的ak? 2. 百度地图地理编码API的批量请求具体如何实现? 3. 除了百度地图,还有哪些工具可以实现批量坐标拾取? 4. 如何提高坐标拾取的精度? </think>### 百度地图批量坐标拾取系统经纬度的方法 要实现批量获取坐标经纬度信息,可通过以下两种主流方法操作(**需提前注册百度地图开放平台账号并获取AK密钥**): --- #### **方法一:使用地理编码API(适用于批量地址转换经纬度)** 1. **准备地址数据** 将需要转换的地址整理为文本文件(每行一个地址),例如: ``` 北京市海淀区上地十街10号 上海市浦东新区陆家嘴环路479号 ``` 2. **调用批量地理编码API** 使用HTTP请求调用API(免费额度每日6000次): ```bash curl "http://api.map.baidu.com/geocoding/v3/?address=地址文本&output=json&ak=您的AK密钥" ``` - 批量处理需循环调用或使用官方批量接口(最高支持20个/次)[[^1]](http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding) 3. **解析JSON结果** 返回数据格式示例: ```json { "result": { "location": { "lng": 116.308420, //经度 "lat": 40.057030 //纬度 } } } ``` --- #### **方法二:JavaScript API自定义工具(适用于手动标注批量点)** 1. **创建坐标采集页面** 复制以下代码保存为HTML文件(替换`您的AK`): ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://api.map.baidu.com/api?v=3.0&ak=您的AK"></script> </head> <body> <div id="map" style="height:600px;width:100%"></div> <button onclick="exportData()">导出全部坐标</button> <div id="result"></div> <script> const map = new BMap.Map("map"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); map.enableScrollWheelZoom(); const points = []; // 存储坐标 // 点击地图添加标记 map.addEventListener("click", (e) => { const point = {lng: e.point.lng, lat: e.point.lat}; points.push(point); new BMap.Marker(e.point).addTo(map); document.getElementById("result").innerHTML += `点${points.length}: 经度 ${point.lng.toFixed(6)}, 纬度 ${point.lat.toFixed(6)}<br>`; }); // 导出CSV function exportData() { let csv = "序号,经度,纬度\n"; points.forEach((p,i) => csv += `${i+1},${p.lng},${p.lat}\n`); const link = document.createElement("a"); link.href = "data:text/csv;charset=utf-8," + encodeURI(csv); link.download = "坐标采集.csv"; link.click(); } </script> </body> </html> ``` 2. **操作流程** - 在浏览器中打开HTML文件 - 点击地图添加标记点(自动记录经纬度) - 点击【导出全部坐标】下载CSV文件 --- ### 注意事项 1. **坐标精度** - 百度地图使用BD09坐标系(国测局GCJ02偏移加密),国际标准需通过API转换[[^2]](http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition) 2. **限制说明** - 未认证开发者:并发量2次/秒,日限额30万次 - 企业认证后:可提升至50次/秒[[^3]](http://lbsyun.baidu.com/index.php?title=webapi/appendix) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值