经纬度制作高清卫星图片免费 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 就是顶了,调用前可以先试一下。
相关推荐
RS迷途小书童3 小时前
Python 解析大疆无人机 SRT 字幕日志
开发语言·python·无人机
点心的游戏开发世界3 小时前
GDScript 入门笔记(十六):文件读写与数据持久化
开发语言·笔记·游戏引擎·godot
会飞的拖把3 小时前
Python序列详解:列表、元组、字符串的通用操作(超详细版)
开发语言·windows·python
reasonsummer4 小时前
【办公类-115-01】20260906育儿知识(家园小报)批量制作(2026年9月-2027年6月)
开发语言·数据库·c#
君顾14 小时前
智慧场馆解决方案小程序系统实战:从架构设计到上线指南
java·开发语言·智慧场馆
zhougl9964 小时前
Dockerfile实战教程
java·开发语言·spring boot
FfHUCisI4 小时前
Golang 网络轮询器 netpoll:把阻塞 IO 变成事件通知
开发语言·网络·golang
XiaoQiao6669994 小时前
C 语言常用头文件及里面核心函数
c语言·开发语言
statistican_ABin4 小时前
中国宠物经济发展分析报告——基于R语言的2018-2024年宠物市场多维度分析
开发语言·r语言·宠物
matlab代码4 小时前
基于matlab PCA人脸识别系统【源码63期】
开发语言·matlab