想看巴黎铁塔、八达岭长城,或者直接"看你家楼顶",把坐标丢进去就行。底层由地图服务商瓦片拼接生成,再通过接口盒子的网关返回给你一个 .jpg缓存地址。
特点:
- ✅ 完全免费(接口盒子基础会员即可用,每日调用无上限)
- ✅ 支持 GET / POST 两种调用方式
- ✅ 精度可调,最高 zoom=18,能看到建筑轮廓
二、请求说明
项目 |
值 |
请求地址 |
|
请求方式 |
GET 或 POST |
请求编码 |
UTF-8 |
返回格式 |
JSON |
三、请求参数
必填参数
参数 |
名称 |
说明 |
示例 |
|
用户 ID |
用户中心的数字 ID |
|
|
用户 KEY |
用户中心通讯秘钥 |
|
|
经度 |
图片生成较慢,建议超时 ≥ 20s |
|
|
纬度 |
同上 |
|
可选参数
参数 |
名称 |
说明 |
示例 |
|
缩放级别 |
1–18,数值越大越精细;17=街区级,18=建筑轮廓级,默认 18。部分地区 18 级可能无数据 |
|
|
动态秘钥 |
开启动态秘钥验证后需传,防止前端直调泄露 KEY |
— |
|
用户 IP |
用于后台 IP 统计,彩钻/炫钻/焱钻会员专享 |
|
四、返回参数
{ "code": 200, "msg": "ok", "img": "https://接口盒子/imgcache/17817847474517279405.jpg" }
参数 |
说明 |
|
|
|
文字提示(成功时一般是 |
|
成功时返回的合成卫星图 CDN 地址,直接 |
五、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 就是顶了,调用前可以先试一下。