经纬度制作高清卫星图片免费 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 就是顶了,调用前可以先试一下。
相关推荐
2401_8949155338 分钟前
GEO 搜索优化完整源码从零部署:环境配置、集群搭建全流程
开发语言·python·tcp/ip·算法·unity
颜x小3 小时前
[C#] C++与c#语法对比
开发语言·c++·c#
weixin_423652133 小时前
C#使用JObject
开发语言·c#
国科安芯3 小时前
FreeRTOS RISC-V 浮点上下文切换移植:在 IAR 工程中完整保存 FPU 寄存器
java·开发语言·单片机·嵌入式硬件·算法·系统架构·risc-v
2501_915921434 小时前
iOS开发环境搭建详解 Xcode 配置与快蝎轻量级工具选择
ide·vscode·macos·ios·个人开发·xcode·敏捷流程
霸道流氓气质5 小时前
Java中集成Smile 技术教程:从入门到工程实践
java·开发语言
BerrySen1785 小时前
迈向 Next-Gen Java:企业级高并发架构演进与大模型 Agent 落地深度实战
java·开发语言·架构
_瑞6 小时前
试图教会你用 Xcode Instruments
前端·ios·xcode
Nebula_g6 小时前
Java实现本地Socket通信(三)
java·开发语言·学习·socket·可视化
一水6 小时前
java运行排错,新码旧jar
java·开发语言·jar