经纬度制作高清卫星图片免费 API 接口详解

想看巴黎铁塔、八达岭长城,或者直接"看你家楼顶",把坐标丢进去就行。底层由地图服务商瓦片拼接生成,再通过接口盒子的网关返回给你一个 .jpg缓存地址。

特点:

  • ✅ 完全免费(接口盒子基础会员即可用,每日调用无上限)
  • ✅ 支持 GET / POST 两种调用方式
  • ✅ 精度可调,最高 zoom=18,能看到建筑轮廓

二、请求说明

项目 值
请求地址 https://cn.apihz.cn/api/weizhi/weixing.php
请求方式 GET 或 POST
请求编码 UTF-8
返回格式 JSON

三、请求参数

必填参数

参数 名称 说明 示例
id 用户 ID 用户中心的数字 ID 10000000
key 用户 KEY 用户中心通讯秘钥 15he5h15ty854j5sr152hs2
lon 经度 图片生成较慢,建议超时 ≥ 20s 104.6791
lat 纬度 同上 31.4671

可选参数

参数 名称 说明 示例
zoom 缩放级别 1--18,数值越大越精细;17=街区级,18=建筑轮廓级,默认 18。部分地区 18 级可能无数据 18
dkey 动态秘钥 开启动态秘钥验证后需传,防止前端直调泄露 KEY ---
uip 用户 IP 用于后台 IP 统计,彩钻/炫钻/焱钻会员专享 123.123.123.123

四、返回参数

复制代码
{
  "code": 200,
  "msg": "ok",
  "img": "https://接口盒子/imgcache/17817847474517279405.jpg"
}
参数 说明
code 200= 成功,400= 出错
msg 文字提示(成功时一般是 "ok"或空,失败时给原因如"通讯秘钥错误")
img 成功时返回的合成卫星图 CDN 地址,直接 <img>或下载即可

五、GET 调用示例(最快上手)

复制代码
https://接口盒子/api/weizhi/weixing.php?id=88888888&key=88888888&lon=116.3908&lat=39.9163&zoom=18

六、PHP 调用示例

方式一:cURL GET

复制代码
<?php
$id  = '88888888';   // 换成你自己的
$key = '88888888';   // 换成你自己的
$lon = '116.3908';
$lat = '39.9163';
$zoom = 18;
$url = sprintf(
    'https://接口盒子/api/weizhi/weixing.php?id=%s&key=%s&lon=%s&lat=%s&zoom=%s',
    $id, $key, $lon, $lat, $zoom
);
$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 30,   // 图片合成慢,≥20s
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
if ($data['code'] === 200) {
    echo "卫星图地址:" . $data['img'];
} else {
    echo "错误:" . $data['msg'];
}

方式二:cURL POST

复制代码
<?php
$id  = '88888888';
$key = '88888888';
$lon = '116.3908';
$lat = '39.9163';
$zoom = 18;
$ch = curl_init('https://接口盒子/api/weizhi/weixing.php');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 30,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => http_build_query([
        'id'   => $id,
        'key'  => $key,
        'lon'  => $lon,
        'lat'  => $lat,
        'zoom' => $zoom,
    ]),
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);

七、Python 调用示例

方式一:requests GET

复制代码
import requests
ID, KEY = "88888888", "88888888"   # 换成自己的
LON, LAT = "116.3908", "39.9163"
ZOOM = 18
url = "https://接口盒子/api/weizhi/weixing.php"
params = {
    "id": ID,
    "key": KEY,
    "lon": LON,
    "lat": LAT,
    "zoom": ZOOM,
}
r = requests.get(url, params=params, timeout=30)
data = r.json()
if data["code"] == 200:
    print("卫星图地址:", data["img"])
else:
    print("错误:", data["msg"])

方式二:requests POST(推荐)

复制代码
import requests
ID, KEY = "88888888", "88888888"
LON, LAT = "116.3908", "39.9163"
ZOOM = 18
url = "https://接口盒子/api/weizhi/weixing.php"
payload = {
    "id": ID,
    "key": KEY,
    "lon": LON,
    "lat": LAT,
    "zoom": ZOOM,
}
r = requests.post(url, data=payload, timeout=30)
data = r.json()
if data["code"] == 200:
    print("卫星图地址:", data["img"])
    # 如果想直接下载:
    # img_data = requests.get(data["img"]).content
    # with open("satellite.jpg", "wb") as f:
    #     f.write(img_data)
else:
    print("错误:", data["msg"])

八、几个容易踩的坑

  1. 超时一定要设 20s 以上 ------ 图片是服务端现拼的,快的话几秒,慢的话十几秒,默认 5s/10s 必超时。
  2. zoom=18 不是全球都有 ------ 国内主要城市基本齐全,偏远地区可能 17 就是顶了,调用前可以先试一下。
相关推荐
apcipot_rain3 小时前
C++转Java日记(04)
java·开发语言·c++
云和数据.ChenGuang4 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
蜗牛一步步往上爬8 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
张张123y10 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent
冻柠檬飞冰走茶13 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
FRing0313 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
雪落漂泊13 小时前
C++算法 二分查找篇(上)
开发语言·c++·算法
传奇开心果编程14 小时前
【Flutter踩坑排雷】第19课:路由硬编码坑|字符串路由书写错误,页面跳转失败排查
android·flutter·ios·移动开发·跨平台·ui框架·声明式ui
波力海苔夹心脆67514 小时前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
不会算法的笨小孩14 小时前
异常的使用以及会出现的问题
开发语言·c++·c++11·异常