项目场景:
通过输入地理位置使用高德地图api获取经纬度
准备工作
- 访问高德开放平台官网(https://lbs.amap.com/),注册账号并登录。
- 进入 “控制台”,选择 “应用管理”,点击 “创建新应用”,按照提示填写相关信息创建应用。
- 创建成功后,在应用详情页面就能获取到对应的 API 密钥(Key),后续在调用高德 API 时需要用到这个密钥来进行身份验证。
代码实现
使用 JavaScript 语言
1.引入
在 HTML 文件的 标签内添加如下代码,将 YOUR_API_KEY 替换为你实际申请到的 API 密钥
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>获取经纬度示例</title>
<script src="https://webapi.amap.com/maps?v=2.0&key=YOUR_API_KEY"></script>
</head>
<body>
</body>
</html>
2.地理位置查询
//address:要查询的地理位置
const place = (address) => {
var geocoder = new AMap.Geocoder({
city: "全国", //城市设为北京,默认:“全国”
});
geocoder.getLocation(address, function (status, result) {
if (status === "complete" && result.info === "OK") {
var lnglat = result.geocodes[0].location;
//经纬度
params.latlng = lnglat.R + "," + lnglat.Q;
console.log("地址位置查询成功");
} else {
console.log("地理位置查询失败")
}
});
};
使用 Python 语言
- 引入
requests
库,用于发送HTTP
请求 - 构建 API 请求 URL,高德地图提供的提高地址获取经纬度的接口为
https://restapi.amap.com/v3/geocode/geo
- 定义函数,设置请求参数,包括要查询的地址和获取到的 API 密钥,使用
requests.get()
方法发送请求,并将返回的 JSON 数据转换为 Python 对象,最后从返回结果中提取经纬度信息.
使用
import requests
def get_location(address, key):
url = 'https://restapi.amap.com/v3/geocode/geo'
params = {
'address': address,
'key': key
}
response = requests.get(url, params=params)
data = response.json()
return data['geocodes'][0]['location']
if __name__ == '__main__':
address = '北京市海淀区中关村'
key = 'your_amap_key'
location = get_location(address, key)
print(f'经纬度:{location}')