经纬度制作高清卫星图片免费 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 就是顶了,调用前可以先试一下。
相关推荐
叫Guava不是瓜娃8 小时前
我用 Swift 写了个本地语音输入:按住说话,松开就是整理好的文字(开源)
swift
WJ.Polar10 小时前
Java封装、继承、多态
java·开发语言
摇滚侠10 小时前
Java 中如何表示负数,有符号和无符号的区别,补码的计算规则,char byte short int long 的范围
java·开发语言
weixin_3077791310 小时前
C++代码实现MATLAB中的fitrtree函数功能
开发语言·c++·算法·matlab
爱读书的小胖11 小时前
Codewars:Rot13(C)解题分析
c语言·开发语言
鸽鸽程序猿11 小时前
【项目】【在线判题系统】b端题目增删改
开发语言·python
Lhappy嘻嘻11 小时前
读懂 JVM:内存模型、类加载机制、分代回收
java·开发语言·jvm
茶底世界之下11 小时前
林间步道要不要加暗角?用 Awaking 把强度收在20%
前端·ios·图片资源
season_zhu11 小时前
Skills For Real Engineers 系列之一:先配好项目,再让 ask-matt 帮我选技能
ios·openai·ai编程
weixin_3077791312 小时前
C++代码实现MATLAB中的spectralcluster函数功能
开发语言·c++·算法·matlab