首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用OpenElevation高效地使用Python

使用OpenElevation高效地使用Python
EN

Stack Overflow用户
提问于 2022-07-08 15:52:44
回答 1查看 97关注 0票数 1

我有一套很大的纬度/经度坐标,我想得到每个坐标的高度。我想使用OpenElevation API。根据他们的API,我可以通过网址:https://api.open-elevation.com/api/v1/lookup?locations=10,10|20,20|41.161758,-8.583933获得海拔数据。正如您可以从示例URL中看到的那样,可以在一个请求中获得多个高度(前提是您使用POST)。但是,当我尝试实现他们使用的示例时:

代码语言:javascript
运行
复制
elevation = requests.post('https://api.open-elevation.com/api/v1/lookup', params={"locations": "10,10"}).content
print(elevation)

这就是结果:b'{"error": "Invalid JSON."}'

提交的网址是:https://api.open-elevation.com/api/v1/lookup?locations=10%2C10,它的格式肯定不正确。

EN

Stack Overflow用户

回答已采纳

发布于 2022-07-08 16:13:08

在快速查看文档之后。POST端点要求将参数以JSON格式以JSON格式以适当的标头在请求体中发送

下面是一个有用的例子:

代码语言:javascript
运行
复制
import requests
import json

response = requests.post(
            url="https://api.open-elevation.com/api/v1/lookup",
            headers={
                "Accept": "application/json",
                "Content-Type": "application/json; charset=utf-8",
            },
            data=json.dumps({
                "locations": [
                    {
                        "longitude": 10,
                        "latitude": 10
                    },
                    {
                        "longitude": 20,
                        "latitude": 20
                    }
                ]
            })
        )

print('Response HTTP Status Code: {status_code}'.format(status_code=response.status_code))
print('Response HTTP Response Body: {content}'.format(content=response.content))

响应:

代码语言:javascript
运行
复制
Response HTTP Status Code: 200
Response HTTP Response Body: b'{"results": [{"latitude": 10, "longitude": 10, "elevation": 515}, {"latitude": 20, "longitude": 20, "elevation": 545}]}'
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72913976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档