基本介绍
API 常规接口地址:http://api.alanweb.site
API 高性能接口地址:http://superapi.alanweb.site
AWP API 提供程序化的接口来计算地理几何,你可以通过该接口获取地理区域经纬计算相关数据。它原本属于AlanWayPoint工具的一部分,但它应当公开以供更多人使用,这将有利于部分兴趣爱好者做一些:数据测试、游戏实验、轨迹模拟、数字地形仿真模拟。
它的内部实现均采用了[Matrix calculation]矩阵变换,以确保纵横坐标永远为对齐的状态、高纬度无畸变;同时内部已内置多款主流飞行器的镜头参数,初学者也能直接使用,不必要填写飞行器复杂的镜头参数,直接传入坐标就能获取经纬点。
此API接口对已拥有AlanWayPoint工具的玩家完全无偿开放,如果你需要api_key值,联系我们即可。
使用本 API 需要你拥有 API 密钥。如需获取 API 密钥,请联系我们:
1、邮箱:alanlw21@qq.com
2、薇薪:alanwaypoint
3、如果你有好的建议或者遇到调用时发生未达到预期的问题,可以反馈于我们薇薪:alanwaypoint 或者邮箱 alanlw21@qq.com
面状网格
### 以下是“面状网格 API”的“Python”请求示例 ####
import requests
import json
# API地址,此处以网格生成为例。
API_URL = "http://api.alanweb.site/api/FlightRoute/GridGeneration"
# 你的key值
API_KEY = "api_key_value_xxxxxxxxxxxxxx"
# 请求头
HEADERS = {
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
}
# 请求参数(网格生成接口参数)
REQUEST_DATA = {
"HxValue": 100,
"PxValue": 100,
"SimplePoint": True,
"BaoLiuTwoDian": True,
"AirLineAngle": 0,
"Area": [
{
"longitude": 107.707574236791,
"latitude": 27.9486901470109
},
{
"longitude": 107.71361909641,
"latitude": 27.9475811444902
},
{
"longitude": 107.713524153021,
"latitude": 27.9516255958259
},
{
"longitude": 107.708360173145,
"latitude": 27.9520076717445
}
]
}
if __name__ == "__main__":
try:
# 发送POST请求
response = requests.post(
url=API_URL,
headers=HEADERS,
data=json.dumps(REQUEST_DATA),
timeout=30
)
print(f"响应状态码: {response.status_code}")
print("返回数据:")
try:
json_data = response.json()
formatted_json = json.dumps(json_data,
indent=4,
ensure_ascii=False)
print(formatted_json)
except json.JSONDecodeError:
print(f"(非JSON格式){response.text}")
except Exception as e:
print(f"ERRO:未知错误:{str(e)}")
如需获取“面状网格”经纬度坐标,你需要向以下地址发送 POST 请求:
http://api.alanweb.site/api/FlightRoute/GridGeneration
“面状网格”API返回结果示例:
{
"Success": true,
"Message": "航线计算成功",
"RoutePoints": [
{
"index": 0,
"longitude": 107.71422726815904,
"latitude": 27.94811000379821,
"speed": -1,
"flyHight": -1,
"cameraAngle": -1,
"circleRadiu": -1,
"angleFocus": -1,
"angleCutin": -1,
"expandPoint": false,
"isPhoton": false
},
{
"index": 1,
"longitude": 107.7113250447244,
"latitude": 27.94811000379821,
"speed": -1,
"flyHight": -1,
"cameraAngle": -1,
"circleRadiu": -1,
"angleFocus": -1,
"angleCutin": -1,
"expandPoint": false,
"isPhoton": false
},
{
"index": 2,
"longitude": 107.70842282128977,
"latitude": 27.94901237903789,
"speed": -1,
"flyHight": -1,
"cameraAngle": -1,
"circleRadiu": -1,
"angleFocus": -1,
"angleCutin": -1,
"expandPoint": false,
"isPhoton": false
}
]
}
面状网格-请求参数
| 字段名 | 类型 | 描述 | 范围 |
|---|---|---|---|
| HxValue | float | 经纬度点在指定区域距离前后点的纵向距离(米) | 5~1000 |
| PxValue | float | 经纬度点在指定区域距离左右点的横向距离(米) | 5~1000 |
| SimplePoint | bool | 是否启用“航点简化”,单条航线仅保留两端两个点。 | true/false |
| BaoLiuTwoDian | bool | 是否启用“超级简化”,单条航线仅保留两端单个点(仅当“航点简化”开启时有效) | true/false |
| AirLineAngle | float | 航线旋转角度 | -180~0~180 |
| Area | List<Point> | 区域范围的经纬度坐标集合,你必须确保至少保证有3个经纬度点。 | { (lng, lat) | lng ∈ [-180, 180], lat ∈ [-90, 90] } |
带状网格
### 以下是“航带飞行 API”的“Python”请求示例 ####
# 请求头
HEADERS = {
"X-Api-Key": "api_key_value_xxxxxxxxxxxxxx",
"Content-Type": "application/json"
}
# 请求参数
REQUEST_DATA = {
"CameraIndex": 0
"FlyHight": 120,
"FlySpeed": 5,
"HxValue": 70, #表示纵向70%重叠率
"PxValue": 70, #表示横向70%重叠率
"CameraAngle": -90,
"SimplePoint": False, # 关闭了简化模式
"BaoLiuTwoDian": False, # 关闭了极简模式
"WaiKuoNum": 1, # 航线外扩条数
"Area": [
{
"longitude": 107.707574236791,
"latitude": 27.9486901470109
},
{
"longitude": 107.71361909641,
"latitude": 27.9475811444902
},
{
"longitude": 107.713524153021,
"latitude": 27.9516255958259
},
{
"longitude": 107.708360173145,
"latitude": 27.9520076717445
}
]
}
if __name__ == "__main__":
try:
response = requests.post(
url=API_URL, # 在这里填写说明书API.URL地址。
headers=HEADERS,
data=json.dumps(REQUEST_DATA),
timeout=30
)
print(f"状态码: {response.status_code}")
try:
json_data = response.json()
formatted_json = json.dumps(json_data,
indent=4,
ensure_ascii=False)
print(formatted_json)
except json.JSONDecodeError:
print(f"(非JSON格式){response.text}")
except Exception as e:
print(f"ERROR:{str(e)}")
如需获取“航带飞行”经纬度坐标,你需要向以下地址发送 POST 请求:
http://api.alanweb.site/api/FlightRoute/StripFlight
返回结果示例:
{
"Success": true,
"Message": "航线计算成功",
"RoutePoints": [
{
数据类似网格航线
}
....
]
}
请求参数说明
| 字段名 | 类型 | 描述 | 范围 |
|---|---|---|---|
| CameraIndex | int | 镜头选择(如果为“-1”则HxValue、PxValue将要视为经纬点的间距) | -1~0~26 |
| FlyHight | float | 飞行高度 | 10~1500 |
| FlySpeed | float | 飞行速度 | 1~15 |
| CameraAngle | float | 云台角度(无限制) | -90~90 |
| HxValue | float | 航向重叠率 | 5~98 |
| PxValue | float | 旁向重叠率 | 5~98 |
| WaiKuoNum | int | 外扩条数 | 0~50 |
| Area | List<Point> | 区域范围的经纬度坐标集合,你必须确保至少保证有3个经纬度点。 | { (lng, lat) | lng ∈ [-180, 180], lat ∈ [-90, 90] } |
交叉网格
### 以下是“交叉倾斜 API”的“Python”请求示例 ####
# 请求头
HEADERS = {
"X-Api-Key": "api_key_value_xxxxxxxxxxxxxx",
"Content-Type": "application/json"
}
# 请求参数
REQUEST_DATA = {
"CameraIndex": 0,
"FlyHight": 130,
"FlySpeed": 5,
"HxValue": 70,
"PxValue": 70,
"CameraAngle": -45,
"SimplePoint": False,
"BaoLiuTwoDian": False,
"ZuiJiaHangXian": True,
"Start2D": False, # 正射模式是关闭的,开启后为交叉倾斜模式。
"AirLineAngle": 0,
"Area": [
{
"longitude": 107.707574236791,
"latitude": 27.9486901470109
},
{
"longitude": 107.71361909641,
"latitude": 27.9475811444902
},
{
"longitude": 107.713524153021,
"latitude": 27.9516255958259
},
{
"longitude": 107.708360173145,
"latitude": 27.9520076717445
}
]
}
如需获取“交叉倾斜”经纬度坐标,,你需要向以下地址发送 POST 请求:
http://api.alanweb.site/api/FlightRoute/CrossTilt
返回结果示例:
{
"index": 0,
"longitude": 107.71688763964077,
"latitude": 27.948359961712065,
"speed": 12, # 建议速度
"flyHight": 130,
"cameraAngle": -45,
"circleRadiu": -1,
"angleFocus": -1,
"angleCutin": -1,
"expandPoint": true, # 为扩展点,当ZuiJiaHangXian开启时检测。
"isPhoton": false # 此点不建议拍照
}
请求参数说明
| 字段名 | 类型 | 描述 | 范围 |
|---|---|---|---|
| CameraIndex | int | 镜头选择(如果为“-1”则HxValue、PxValue将要视为经纬点的间距) | -1~0~26 |
| FlyHight | float | 飞行高度 | 10~1500 |
| FlySpeed | float | 飞行速度 | 1~15 |
| CameraAngle | float | 云台角度 | -90~-20 |
| HxValue | float | 航向重叠率 | 5~98 |
| PxValue | float | 旁向重叠率 | 5~98 |
| SimplePoint | bool | 是否启用“航点简化”,单条航线仅保留两端两个点。 | true/false |
| Start2D | bool | 是否启用“面状经纬点”,类似正射航线 | true/false |
| ZuiJiaHangXian | bool | 是否启用“最佳航线”,减少拐弯角非必要的拍照。 | true/false |
| BaoLiuTwoDian | bool | 是否启用“超级简化”,单条航线仅保留两端单个点(仅当“航点简化”开启时有效) | true/false |
| AirLineAngle | float | 航线旋转角度 | -180~180 |
| Area | List<Point> | 区域范围的经纬度坐标集合,你必须确保至少保证有3个经纬度点。 | { (lng, lat) | lng ∈ [-180, 180], lat ∈ [-90, 90] } |
五向网格
### 以下是“五向飞行 API”的“Python”请求示例 ####
# 请求头(必须包含X-Api-Key和Content-Type)
HEADERS = {
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
}
# 请求参数(你的网格生成接口参数)
REQUEST_DATA = {
"CameraIndex": 0,
"FlyHight": 130,
"FlySpeed": 5,
"HxValue": 70,
"PxValue": 70,
"CameraAngle": -40, # 这个参数设定的是其余四条倾斜航线的角度
"SimplePoint": True, # CameraAngle无论设定多少,首条航线自动-90度
"BaoLiuTwoDian": False,
"AirLineAngle": 0,
"Area": [
{
"longitude": 107.707574236791,
"latitude": 27.9486901470109
},
{
"longitude": 107.71361909641,
"latitude": 27.9475811444902
},
{
"longitude": 107.713524153021,
"latitude": 27.9516255958259
},
{
"longitude": 107.708360173145,
"latitude": 27.9520076717445
}
]
}
如需获取“五向飞行”经纬度坐标,,你需要向以下地址发送 POST 请求:
http://api.alanweb.site/api/FlightRoute/Dir5Tilt
请求参数说明
| 字段名 | 类型 | 描述 | 范围 |
|---|---|---|---|
| CameraIndex | int | 镜头选择(如果为“-1”则HxValue、PxValue将要视为经纬点的间距) | -1~0~26 |
| FlyHight | float | 飞行高度 | 10~1500 |
| FlySpeed | float | 飞行速度 | 1~15 |
| CameraAngle | float | 云台角度 | -90~-20 |
| HxValue | float | 航向重叠率 | 5~98 |
| PxValue | float | 旁向重叠率 | 5~98 |
| SimplePoint | bool | 是否启用“航点简化”,单条航线仅保留两端两个点。 | true/false |
| BaoLiuTwoDian | bool | 是否启用“超级简化”,单条航线仅保留两端单个点(仅当“航点简化”开启时有效) | true/false |
| AirLineAngle | float | 航线旋转角度 | -180~180 |
| Area | List<Point> | 区域范围的经纬度坐标集合,你必须确保至少保证有3个经纬度点。 | { (lng, lat) | lng ∈ [-180, 180], lat ∈ [-90, 90] } |
弓字带状
### 以下是“弓字航线 API”的“Python”请求示例 ####
HEADERS = {
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
}
# 请求参数
REQUEST_DATA = {
"CameraIndex": 0,
"FlyHight": 120,
"FlySpeed": 5,
"HxValue": 70,
"PxValue": 70,
"CameraAngle": -90,
"SimplePoint": True,
"LineWidth": 120,
"Area": [
{
"longitude": 107.707574236791,
"latitude": 27.9486901470109
},
{
"longitude": 107.71361909641,
"latitude": 27.9475811444902
},
{
"longitude": 107.713524153021,
"latitude": 27.9516255958259
},
{
"longitude": 107.708360173145,
"latitude": 27.9520076717445
}
]
}
如需获取“弓字航线”经纬度坐标,,你需要向以下地址发送 POST 请求:
http://api.alanweb.site/api/FlightRoute/BowShapedTilt
请求参数说明
| 字段名 | 类型 | 描述 | 范围 |
|---|---|---|---|
| CameraIndex | int | 镜头选择(如果为“-1”则HxValue、PxValue将要视为经纬点的间距) | -1~0~26 |
| FlyHight | float | 飞行高度 | 10~1500 |
| FlySpeed | float | 飞行速度 | 1~15 |
| CameraAngle | float | 云台角度(无限制) | -90~90 |
| HxValue | float | 航向重叠率 | 5~98 |
| PxValue | float | 旁向重叠率 | 5~98 |
| LineWidth | float | 航线纵向宽度(米) | 10~500 |
| SimplePoint | bool | 是否启用“航点简化”,单条航线仅保留两端两个点。 | true/false |
| Area | List<Point> | 经纬度坐标集合,你必须确保至少保证有2个经纬度点。 | { (lng, lat) | lng ∈ [-180, 180], lat ∈ [-90, 90] } |
单点环绕
### 以下是“定点环绕 API”的“Python”请求示例 ####
# 请求头(必须包含X-Api-Key和Content-Type)
HEADERS = {
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
}
# 请求参数(你的网格生成接口参数)
REQUEST_DATA = {
"EncircleModuleType": 1,
"AngleRadModeState": 1,
"CameraIndex": 0,
"FlyHight": 120,
"FlySpeed": 5,
"HxValue": 60,
"CameraAngle": -45,
"SimplePoint": False,
"CircleRadiu": 100,
"AngleFocusCorrection": -2,
"CircleNum": 15,
"Area": [
{
"longitude": 107.707574236791,
"latitude": 27.9486901470109
},
{
"longitude": 107.71361909641,
"latitude": 27.9475811444902
},
{
"longitude": 107.713524153021,
"latitude": 27.9516255958259
},
{
"longitude": 107.708360173145,
"latitude": 27.9520076717445
}
]
}
如需获取“定点环绕”经纬度坐标,,你需要向以下地址发送 POST 请求:
http://api.alanweb.site/api/FlightRoute/EncircleTilt
返回的Point结果示例:
{
{
"index": 0,
"longitude": 107.71084134059655,
"latitude": 27.94540287807918,
"speed": 12,
"flyHight": 500,
"cameraAngle": -45,
"circleRadiu": 500, # 半径
"angleFocus": -4, # 圆心聚焦角
"angleCutin": 40.4, # 切入角
"expandPoint": false,
"isPhoton": true
}
}
请求参数说明
| 字段名 | 类型 | 描述 | 范围 |
|---|---|---|---|
| EncircleModuleType | int |
[必填“1”] 模块选择: 1-定点环绕。 2-航带倾斜。 3-环绕倾斜。 |
1|2|3 |
| AngleRadModeState | int | [可选]镜头聚焦类型: 1-根据“云台角度”设置“环绕半径”。 2-根据“环绕半径”设置“云台角度”。 3-取消“环绕半径”和“云台角度”关联,自由设定“半径”和“云台” |
1|2|3 |
| CameraIndex | int | [可选]镜头选择(如果为“-1”则HxValue将要视为经纬点的间距) | -1~0~26 |
| FlyHight | float | 飞行高度 | 10~1500 |
| FlySpeed | float | 飞行速度 | 1~15 |
| CameraAngle | float | 云台角度 | -80~-20 |
| HxValue | float | 航向重叠率 | 5~98 |
| CircleRadiu | float | 设置圆的半径 | 5~1000 |
| CircleNum | int | [可选]环绕采集点,默认15 | 3~120 |
| SimplePoint | bool | [可选]是否启用“航点简化”,默认5点采集。 | true/false |
| AngleFocusCorrection | float | [可选]角度聚焦圆心矫正 | -90~0 |
| Area | List<Point> | 经纬度坐标集合,你必须确保至少保证有1个经纬度点。 | { (lng, lat) | lng ∈ [-180, 180], lat ∈ [-90, 90] } |
带状环绕
### 以下是“航带环绕 API”的“Python”请求示例 ####
# 请求头(必须包含X-Api-Key和Content-Type)
HEADERS = {
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
}
# 请求参数(你的网格生成接口参数)
REQUEST_DATA = {
"EncircleModuleType": 2,
"AngleRadModeState": 1,
"CameraIndex": 0,
"FlyHight": 120,
"FlySpeed": 5,
"HxValue": 60,
"CameraAngle": -45,
"SimplePoint": False,
"CircleRadiu": 100,
"AngleFocusCorrection": -2,
"CircleNum": 15,
"Area": [
{
"longitude": 107.707574236791,
"latitude": 27.9486901470109
},
{
"longitude": 107.71361909641,
"latitude": 27.9475811444902
},
{
"longitude": 107.713524153021,
"latitude": 27.9516255958259
},
{
"longitude": 107.708360173145,
"latitude": 27.9520076717445
}
]
}
如需获取“航带环绕”经纬度坐标,,你需要向以下地址发送 POST 请求:
http://api.alanweb.site/api/FlightRoute/EncircleTilt
请求参数说明
| 字段名 | 类型 | 描述 | 范围 |
|---|---|---|---|
| EncircleModuleType | int |
[必填“2”] 模块选择: 1-定点环绕。 2-航带倾斜。 3-环绕倾斜。 |
1|2|3 |
| AngleRadModeState | int | [可选]镜头聚焦类型: 1-根据“云台角度”设置“环绕半径”。 2-根据“环绕半径”设置“云台角度”。 3-取消“环绕半径”和“云台角度”关联,自由设定“半径”和“云台” |
1|2|3 |
| CameraIndex | int | 镜头选择(如果为“-1”则HxValue将要视为经纬点的间距) | -1~0~26 |
| FlyHight | float | 飞行高度 | 10~1500 |
| FlySpeed | float | 飞行速度 | 1~15 |
| CameraAngle | float | 云台角度 | -90~-20 |
| HxValue | float | 航向重叠率 | 5~98 |
| CircleRadiu | float | 设置圆的半径 | 5~1000 |
| CircleNum | int | [可选]环绕采集点,默认15 | 3~120 |
| SimplePoint | bool | [可选]是否启用“航点简化”,默认5点采集。 | true/false |
| AngleFocusCorrection | float | [可选]角度聚焦圆心矫正,默认0 | -90~0 |
| Area | List<Point> | 经纬度坐标集合,你必须确保至少保证有2个经纬度点。 | { (lng, lat) | lng ∈ [-180, 180], lat ∈ [-90, 90] } |
区域环绕
### 以下是“环绕倾斜 API”的“Python”请求示例 ####
# 请求头(必须包含X-Api-Key和Content-Type)
HEADERS = {
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
}
# 请求参数(你的网格生成接口参数)
REQUEST_DATA = {
"EncircleModuleType": 3,
"AngleRadModeState": 1,
"CameraIndex": 0,
"FlyHight": 120,
"FlySpeed": 5,
"HxValue": 60,
"CameraAngle": -45,
"SimplePoint": False,
"CircleRadiu": 100,
"AirLineAngle": 0,
"AngleFocusCorrection": -2,
"CircleNum": 15,
"Area": [
{
"longitude": 107.707574236791,
"latitude": 27.9486901470109
},
{
"longitude": 107.71361909641,
"latitude": 27.9475811444902
},
{
"longitude": 107.713524153021,
"latitude": 27.9516255958259
},
{
"longitude": 107.708360173145,
"latitude": 27.9520076717445
}
]
}
如需获取“环绕倾斜”经纬度坐标,,你需要向以下地址发送 POST 请求:
http://api.alanweb.site/api/FlightRoute/EncircleTilt
请求参数说明
| 字段名 | 类型 | 描述 | 范围 |
|---|---|---|---|
| EncircleModuleType | int |
[必填“3”] 模块选择: 1-定点环绕。 2-航带倾斜。 3-环绕倾斜。 |
1|2|3 |
| AngleRadModeState | int | [可选]镜头聚焦类型: 1-根据“云台角度”设置“环绕半径”。 2-根据“环绕半径”设置“云台角度”。 3-取消“环绕半径”和“云台角度”关联,自由设定“半径”和“云台” |
1|2|3 |
| CameraIndex | int | 镜头选择(如果为“-1”则HxValue将要视为经纬点的间距) | -1~0~26 |
| FlyHight | float | 飞行高度 | 10~1500 |
| FlySpeed | float | 飞行速度 | 1~15 |
| CameraAngle | float | 云台角度 | -90~-20 |
| HxValue | float | 航向重叠率 | 5~98 |
| CircleRadiu | float | 设置圆的半径 | 5~1000 |
| CircleNum | int | [可选]环绕采集点,默认15 | 3~120 |
| SimplePoint | bool | [可选]是否启用“航点简化”,默认5点采集。 | true/false |
| AngleFocusCorrection | float | [可选]角度聚焦圆心矫正 | -20~-90 |
| AirLineAngle | float | [可选]航线旋转角度,默认0 | -180~0~180 |
| Area | List<Point> | 区域范围的经纬度坐标集合,你必须确保至少保证有3个经纬度点。 | { (lng, lat) | lng ∈ [-180, 180], lat ∈ [-90, 90] } |
立面光绘(正在挖掘中..)
### 以下是“立面光绘 API”的“Python”请求示例 ####
code
如需获取“立面光绘”经纬度坐标,你需要向以下地址发送 POST 请求:
http://api.alanweb.site/api/FlightRoute/xxxxxxxxxxx
请求参数说明
| 字段名 | 类型 | 描述 | 范围 |
|---|---|---|---|
| FlyHight | float | 最低高度 | 10~1500 |
| FlySpeed | float | 飞行速度 | 1~15 |
| CameraAngle | float | 云台角度 | -90~90 |
| xxxxxxxxx | xxxxxxx | xxxxxxxxxxx | xxxxxxxxxx |
| xxxxxxxxx | xxxxxxx | xxxxxxxxxxx | xxxxxxxxxx |
| Area | List<Point> | 区域范围的经纬度坐标集合,你必须确保至少保证有三个经纬度点。 | { (lng, lat) | lng ∈ [-180, 180], lat ∈ [-90, 90] } |
镜头参数
镜头下标参数说明
| 参数 | 描述 | |
|---|---|---|
| -1 | [暂未实现,正在挖掘中..]先不传入负值 不指定选择某个镜头 直接按照传入距离计算HxValue、PxValue |
|
| 0 | Air3 | |
| 1 | Air3(48MP) | |
| 2 | Air3(48MP)x3中长焦 | |
| 3 | Air3S | |
| 4 | Air3S(50MP) | |
| 5 | Mavic3 | |
| 6 | Mavic3Class | |
| 7 | Mavic3Cine | |
| 8 | Mavic3Pro | |
| 9 | Mavic3Pro中焦x3(48MP) | |
| 10 | Mavic3Pro长焦x7(12MP) | |
| 11 | Mini4Pro | |
| 12 | Mini4Pro(48MP) | |
| 13 | Mavic 3E | |
| 14 | Matrice 4E | |
| 15 | Mavic3E-x7(12MP) | |
| 16 | Mavic3T(RGB)48MP | |
| 17 | Mavic3T(IR) | |
| 18 | Mavic3M(ML) | |
| 19 | Mini3Pro(12MP) | |
| 20 | Mini3Pro(48MP) | |
| 21 | Mavic4Pro | |
| 22 | Mavic4Pro-x7 | |
| 23 | Air2(12MP) | |
| 24 | Air2S(3:4) | |
| 25 | Mavic2Pro | |
| 26 | Mavic5Pro | |
| 说明 | 如果你有其他无人机的参数 你可以联系我们进行纠正或修改 |
至此结束
### “Python”请求示例完整版 ####
import requests
import json
API_URL = "http://api.alanweb.site/api/FlightRoute/GridGeneration"
API_KEY = "api_key_xxxxxxxxxxxxxxxxxxxx"
HEADERS = {
"X-Api-Key": API_KEY,
"Content-Type": "application/json"
}
# 请求参数
REQUEST_DATA = {
"HxValue": 100,
"PxValue": 100,
"SimplePoint": True,
"BaoLiuTwoDian": True,
"AirLineAngle": 0,
"Area": [
{
"longitude": 107.707574236791,
"latitude": 27.9486901470109
},
{
"longitude": 107.71361909641,
"latitude": 27.9475811444902
},
{
"longitude": 107.713524153021,
"latitude": 27.9516255958259
},
{
"longitude": 107.708360173145,
"latitude": 27.9520076717445
}
]
}
def call_flight_route_api():
"""调用航线计算API,包含完整异常处理"""
try:
# 发送POST请求
response = requests.post(
url=API_URL,
headers=HEADERS,
data=json.dumps(REQUEST_DATA),
timeout=30
)
# 打印响应状态码(保留原有逻辑)
print(f"响应状态码: {response.status_code}")
print("响应内容:")
try:
# 尝试解析并格式化JSON
json_data = response.json() # 直接用response.json()更简洁
formatted_json = json.dumps(json_data, indent=4, ensure_ascii=False)
print(formatted_json)
except json.JSONDecodeError:
# 如果不是JSON,打印原始文本
print(f"(非JSON格式){response.text}")
if response.status_code == 200:
# 这里直接复用上面解析的json_data,避免重复解析
result = json_data
print(f"\n计算结果 - 是否成功: {result.get('Success')}")
print(f"计算结果 - 消息: {result.get('Message')}")
print(f"计算结果 - 航线点数: {len(result.get('RoutePoints', []))}")
elif response.status_code == 401:
print("❌ 错误:API Key无效/缺失,请检查X-Api-Key是否正确")
elif response.status_code == 429:
print("❌ 错误:请求频率超限(每秒5次/每分钟60次/每天1000次)")
else:
print(f"❌ 其他错误:{response.status_code} - {response.text}")
except requests.exceptions.ConnectionError:
print("❌ 错误:无法连接到API服务器,请检查地址/端口是否正确")
except requests.exceptions.Timeout:
print("❌ 错误:请求超时,请检查服务器是否正常")
except Exception as e:
print(f"❌ 未知错误:{str(e)}")
if __name__ == "__main__":
print("=== API调用(经纬网格) ===")
call_flight_route_api()
这是一个Python语言编写的完整的例子
路由:http://api.alanweb.site/api/FlightRoute/GridGeneration
简单例子
| 步骤 | ||
|---|---|---|
| 1 |
你可以利用AI工具,例如“豆包AI”,告诉他把JSON的经纬度数据转为csv文件 字段按照latitude,longitude保存。 |
|
| 2 | 打开网址“火星3D地球仪” | |
| 3 | 点击“功能”——“导入CSV”,此时会自动定位到你刚刚规划的经纬网格位置。 |
其他工具
| 名称 | ||
|---|---|---|
| 1 | 经纬转换工具,打开网址“荔枝转换工具” | |
| 2 | 假设把他们应用在飞行器中?打开网址“大疆上云API” | |
| 3 | 用在数字地球,打开网址“Cesium” | |
| 4 | 使用AI完成以上工作,打开网址“豆包AI问答” |
特别鸣谢
| 名称 | ||
|---|---|---|
| 1 | 颜泽·黔 | |
| 2 | 朱旭东·晋 | |
| 3 | 张多金·宁 | |
| 3 | 夏雨程 |
错误码说明
当前API接口遇到错误可能返回的代码如下:
| 错码 | 含义 |
|---|---|
| 429 | 短时间内频繁调用接口! |
| 401 |
未知或无效的 api_key。当你使用了未知的 API 密钥或 API 密钥已过期时会出现此错误。
|
| 400 |
传入类型错误 api_key。例如Python中当你把True字段写成了“true”字符串传入时,会报错。
|
| 405 |
协议错误 http/https调用时应当使用https,而使用为http。
|
| Success=false |
返回的JSON数据消息附带Success=false,计算失败时将返回此附带消息。
|
| Success=true |
返回的JSON数据消息附带Success=true,计算成功时将返回此附带消息。
|