想看巴黎铁塔、八达岭长城,或者直接"看你家楼顶",把坐标丢进去就行。底层由地图服务商瓦片拼接生成,再通过接口盒子的网关返回给你一个 .jpg缓存地址。
特点:
- ✅ 完全免费(接口盒子基础会员即可用,每日调用无上限)
- ✅ 支持 GET / POST 两种调用方式
- ✅ 精度可调,最高 zoom=18,能看到建筑轮廓
二、请求说明
三、请求参数
必填参数
| 参数 |
名称 |
说明 |
示例 |
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"])
八、几个容易踩的坑
- 超时一定要设 20s 以上 ------ 图片是服务端现拼的,快的话几秒,慢的话十几秒,默认 5s/10s 必超时。
- zoom=18 不是全球都有 ------ 国内主要城市基本齐全,偏远地区可能 17 就是顶了,调用前可以先试一下。