如何将excel中百度地图经纬度转换成高德坐标
时间: 2023-05-30 19:07:42 浏览: 1200
1. 首先需要在百度地图API官网申请一个开发者账号,获取AK密钥。
2. 在Excel中找到需要转换的经纬度数据所在的列,例如A列为纬度,B列为经度。
3. 在C列中输入以下公式:`=CONCATENATE("http://api.map.baidu.com/ag/coord/convert?from=0&to=2&x=",B2,"&y=",A2,"&ak=您的AK密钥")`,其中B2和A2分别为需要转换的经纬度数据所在的单元格,AK密钥需要替换成自己的密钥。
4. 将C列中的公式拖动到所有需要转换的数据行。
5. 打开浏览器,将C列中的所有链接复制到浏览器地址栏中并打开,会得到一串类似于`{"error":0,"x":"116.397627291","y":"39.908656739"}`的文本。
6. 在D列中输入以下公式:`=MID(C2,FIND("x",C2)+3,FIND(",",C2)-FIND("x",C2)-3)`,其中C2为需要转换的单元格。
7. 将D列中的公式拖动到所有需要转换的数据行。
8. 在E列中输入以下公式:`=MID(C2,FIND("y",C2)+3,LEN(C2)-FIND("y",C2)-3)`,其中C2为需要转换的单元格。
9. 将E列中的公式拖动到所有需要转换的数据行。
10. 最后得到的D列和E列分别为转换后的高德坐标。
相关问题
读取excel中的经纬度,转变为高德坐标系经纬度
需要使用高德地图提供的API接口来实现将Excel中的经纬度转换为高德坐标系经纬度。具体步骤如下:
1. 获取高德地图开发者账号。在高德开放平台注册账号,并获取API Key。
2. 使用Python的pandas库读取Excel文件,获取经纬度数据。
3. 使用requests库向高德地图API接口发送请求,将经纬度转换为高德坐标系经纬度。
4. 将转换后的高德坐标系经纬度写入Excel文件中。
下面是一个基本的Python代码示例:
```python
import pandas as pd
import requests
# 读取Excel文件
df = pd.read_excel('data.xlsx')
# 定义请求URL和API Key
url = 'https://restapi.amap.com/v3/assistant/coordinate/convert'
key = 'your_api_key'
# 定义请求参数
params = {
'key': key,
'coordsys': 'gps',
'output': 'json'
}
# 定义转换函数
def convert(coords):
params['locations'] = coords
response = requests.get(url, params=params)
result = response.json()
if result['status'] == '1':
return result['locations']
else:
return None
# 转换经纬度
df['高德经纬度'] = df.apply(lambda x: convert(str(x['经度']) + ',' + str(x['纬度'])), axis=1)
# 写入Excel文件
df.to_excel('data_with_amap_coords.xlsx', index=False)
```
在以上示例中,我们使用了高德地图API的坐标转换接口(/v3/assistant/coordinate/convert),将Excel中的经纬度转换为高德坐标系经纬度。具体请求参数包括:
- key:开发者的API Key。
- coordsys:原始坐标系,这里使用GPS坐标系。
- output:返回结果格式,这里使用JSON格式。
- locations:需要转换的经纬度,格式为“经度,纬度”。
请求成功后,返回结果包括:
- status:返回状态,1表示成功。
- locations:转换后的高德坐标系经纬度,格式为“经度,纬度”。
最后,我们将转换后的结果写入Excel文件中,便完成了将Excel中的经纬度转换为高德坐标系经纬度的任务。
如何用python根据excel中地址批量查找高德坐标系的经纬度
可以使用高德地图开放平台的Web服务API进行地址转换。具体步骤如下:
1. 在高德地图开放平台申请一个开发者账号,并获取API Key。
2. 使用Python的requests库发送HTTP请求,调用高德地图的Web服务API,将地址转换为经纬度。
3. 将返回的经纬度信息写入Excel表格中。
下面是一个示例代码,假设Excel表格包含地址信息,地址所在列为A列,经度信息所在列为B列,纬度信息所在列为C列。
```python
import requests
import xlrd
import xlwt
from xlutils.copy import copy
# 输入Excel文件路径和sheet名
input_file = 'input.xlsx'
sheet_name = 'Sheet1'
# 输出Excel文件路径
output_file = 'output.xlsx'
# 获取输入Excel文件和sheet
input_workbook = xlrd.open_workbook(input_file)
input_sheet = input_workbook.sheet_by_name(sheet_name)
# 获取输入Excel文件的行数
num_rows = input_sheet.nrows
# 创建输出Excel文件
output_workbook = xlwt.Workbook(encoding='utf-8')
output_sheet = output_workbook.add_sheet(sheet_name)
output_sheet.write(0, 0, '地址')
output_sheet.write(0, 1, '经度')
output_sheet.write(0, 2, '纬度')
# 遍历输入Excel文件中的每一行,获取地址信息,并调用高德地图Web服务API获取经纬度信息
for i in range(1, num_rows):
address = input_sheet.cell_value(i, 0)
url = f'https://restapi.amap.com/v3/geocode/geo?key=<your_api_key>&address={address}'
response = requests.get(url)
json_data = response.json()
location = json_data['geocodes'][0]['location']
longitude, latitude = location.split(',')
output_sheet.write(i, 0, address)
output_sheet.write(i, 1, float(longitude))
output_sheet.write(i, 2, float(latitude))
# 将输出Excel文件保存
output_workbook.save(output_file)
```
在代码中,需要将`<your_api_key>`替换为自己申请的API Key。另外,需要安装xlrd、xlwt和xlutils库来读取和写入Excel文件。
阅读全文
相关推荐










