【批量地点检索-高德百度地图地理编码对比】

本文对比了使用Python调用高德和百度地图的API进行批量地点检索和地理编码。介绍了如何通过API接口获取经纬度坐标,并提到了坐标系转换问题,包括百度/火星坐标系转WGS84坐标系。提供了相关API的URL格式和参数解释。
摘要由CSDN通过智能技术生成

批量地点检索

基于python地理位置描述转经纬度坐标

前提:

需要安装部署python环境
安装导入模块:
import requests
import json
import math

发送请求

调用函数
html = requests.get(url)
发送url获取html,调用函数
JasonData = json.loads(html.txt)
获取返回文本信息,字符串解码为字典

1. 百度地图开放平台 web服务api

百度地图返回百度坐标系,需要注册申请百度地图开放平台个人账户,每日额度30w条,申请api接口key(AK):
https://lbsyun.baidu.com/apiconsole/key#/home

1.1 地理位置检索poi接口

可通过该功能,检索某一行政区划内(目前最细到城市级别)的地点信息。此方法搜索同百度地图主界面地点搜索;注:宽容度低,可能会有大量地点搜索失败,返回空值,但可强制约束行政区,可返回WGS84坐标。
url格式:
https://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行&region=北京&output=json&ak=您的ak
参数解释详见:
https://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-placeapi

1.2 地理编码检索

地理编码服务提供将结构化地址数据(如:北京市海淀区上地十街十号)转换为对应坐标点(经纬度)功能,地理编码服务当前未推出国际化服务,解析地址仅限国内;注:此方法宽容度较高,地点数据库较大,与百度地图主界面检索不同,但有可能返回较大错误地址,不可强制约束行政区,不可返回WGS84坐标。
url格式:
https://api.map.baidu.com/geocoding/v3/?address=北京市海淀区上地十街10号&output=json&ak=您的ak&callback=showLocation
参数解释详见

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Vue 中使用百度地图的地区检索地理编码,需要先引入百度地图 JavaScript API 的 SDK,然后再根据官方文档提供的 API 进行调用。 以下是一个简单的示例,演示了如何在 Vue 组件中使用百度地图 SDK 实现地区检索地理编码: ```html <template> <div> <input type="text" v-model="searchKeyword" @keydown.enter="searchPlace"> <button @click="geocodeAddress">地理编码</button> <div id="map-container"></div> </div> </template> <script> export default { data() { return { map: null, searchKeyword: '', geocoder: null, } }, mounted() { // 加载地图 SDK const AK = '你的百度地图AK'; const script = document.createElement('script'); script.type = 'text/javascript'; script.src = `http://api.map.baidu.com/api?v=3.0&ak=${AK}&callback=initMap`; script.onerror = () => { console.error('加载地图 SDK 失败'); }; document.body.appendChild(script); // 初始化地理编码对象 this.geocoder = new BMap.Geocoder(); }, methods: { // 地区检索 searchPlace() { const local = new BMap.LocalSearch(this.map, { onSearchComplete: (results) => { if (local.getStatus() === BMAP_STATUS_SUCCESS) { if (results.getNumPois() > 0) { const poi = results.getPoi(0); this.map.centerAndZoom(poi.point, 17); } } } }); local.search(this.searchKeyword); }, // 地理编码 geocodeAddress() { this.geocoder.getPoint(this.searchKeyword, (point) => { if (point) { this.map.centerAndZoom(point, 17); } else { alert('地址解析失败'); } }, '中国'); }, // 初始化地图 initMap() { this.map = new BMap.Map('map-container'); this.map.centerAndZoom('北京', 11); this.map.enableScrollWheelZoom(true); } } } </script> ``` 在这个示例中,我们在 `mounted` 钩子函数中动态加载百度地图 JavaScript API 的 SDK,然后在 `initMap` 方法中初始化地图对象。在 `searchPlace` 和 `geocodeAddress` 方法中分别进行地区检索地理编码,并根据返回结果更新地图的中心点和缩放级别。最后,在模板中将地图容器和搜索关键字绑定到相应的数据中。 需要注意的是,百度地图 JavaScript API 的 SDK 是通过回调函数来进行初始化的,因此我们在引入 SDK 时需要将回调函数设置为 `initMap`,而 `initMap` 方法必须是全局函数,否则无法被回调。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值