之前做了一个 GB28181的轻量平台,但是要想安装程序需要一点容器之类的操作经验,在使用上确实有点不太方便。因此我就想着把程序做成用户双击 直接使用的模式。 为了实现这个目的,需要在 windows 上编译 zlmediakit。
本文档介绍如何在 Windows 11 环境下编译 ZLMediaKit。
由于在按照官方教程编译时出现了几个错误,并且文档有些地方写的不清不楚的,我觉得有必要更新写一篇文档补充下。
请跟随步骤一步一步操作。

1. 环境准备

在开始编译之前,请确保你的开发环境已安装以下软件:

  • Visual Studio: VS2022(需安装 C++ 桌面开发组件)。
  • Git: 用于克隆代码仓库。

我进行编译时使用的是 Windows11系统,VS2022。 编译过程中无需打开 vs2022。只要 powershell 以及 x64 Native Tools Command Prompt for VS 2022。

2. 获取代码

打开命令行工具(CMD 或 PowerShell),执行以下命令克隆代码并初始化子模块:

1
2
3
4
5
6
7
8
# 克隆主仓库
git clone https://github.com/ZLMediaKit/ZLMediaKit.git

# 进入目录
cd ZLMediaKit

# 初始化子模块 (重要,否则编译会失败)
git submodule update --init --recursive

我当前编译的是 2026/3/1 日的最新 master 分支代码。


3、基于 scoop + vcpkg 的 Windows 版编译

注意: 以下是 zlmediakit 官网关于 windows编译的内容,我对其中进行了部分修改保证编译能成功。

以下为基于 scoop + vcpkg 编译 ZLMediaKit 的一种方式。

  • scoop: Windows 命令行下使用的软件包安装管理工具
  • vcpkg: 微软发起的 C++ 库管理器,其中有大量常用开源库

由于可以在命令行下使用,可以非常方便的进行自动化集成,推荐大家试用。

⚠️ 注意

  • 以下所有操作如无特殊说明均需在 PowerShell 命令行下进行

4、基于 scoop 及 vcpkg 安装编译依赖

4.1 下载安装 scoop 并使用 scoop 安装依赖工具

说明: 直接在 powershell 中执行下面的命令即可,该步骤中很少出错。

以下是为了安装依赖工具 cmakeninja(可选,但建议安装),如已安装,可跳过。

具体可参考其官网说明,以下仅列出相关简要步骤:

  1. **设置环境变量 SCOOP**,用于配置 scoop 的下载安装目录(包括其管理的软件包):

    1
    $env:SCOOP = 'C:\work\develop\scoop'
  2. 为当前用户设置允许执行 PowerShell 脚本:

    1
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  3. 安装 scoop:

    1
    iwr -useb get.scoop.sh | iex
  4. scoop 添加 extras 软件仓库:

    1
    scoop bucket add extras
  5. 安装 cmakeninja:

    1
    scoop install cmake ninja

💡 提示:为方便后续使用,需将 C:\work\develop\scoop 设置到环境变量 SCOOP 中,将 C:\work\develop\scoop\shims 追加到环境变量 PATH 中。

env

env

4.2 下载配置 vcpkg 并使用 vcpkg 安装依赖库

以下是为了安装相关依赖库,具体包括:openssl 以及 libsrtp,其他可选依赖(如:ffmpeg)也应可安装,暂未测试。

vcpkg 具体使用可参考:

  1. **下载 vcpkg**,其中包括各种配置脚本以及开源库的编译脚本,下载路径假设为 C:\work\develop:

    1
    git clone https://github.com/microsoft/vcpkg
  2. 下载预编译的 vcpkg 包管理工具:

    1
    .\vcpkg\bootstrap-vcpkg.bat -disableMetrics
  3. 编译 openssl:

    1
    .\vcpkg\vcpkg.exe install --triplet=x64-windows-static openssl
  4. **编译 libsrtp**(需要 ENABLE_OPENSSL):

    编辑 C:\work\develop\vcpkg\ports\libsrtp\portfile.cmake,修改 vcpkg_configure_cmake 为如下:(注意 下面配置修改成了当前版本的内容)

    1
    2
    3
    4
    5
    6
    7
    8
    vcpkg_cmake_configure(
    SOURCE_PATH "${SOURCE_PATH}"
    OPTIONS
    "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake"
    -DLIBSRTP_TEST_APPS=OFF
    -DENABLE_OPENSSL:BOOL=ON
    ${FEATURE_OPTIONS}
    )
    1. 然后进行编译(官方方法):

      1
      .\vcpkg\vcpkg.exe install --triplet=x64-windows-static libsrtp
    2. 或者 (后期我使用的方法)

      1
      .\vcpkg\vcpkg.exe install "libsrtp[openssl]:x64-windows-static"

    说明 : 我成功使用 1 步骤编译了 程序,但是程序在后面的使用中发现 webrtc 有问题,最后查找原因发现可能是 openssl 同 libsrtp 兼容的问题。我先是用的官方方法编译的 libsrtp ,后面使用上面的命令重新编译了 libsrtp 才正常。

    1
    2
    3
    # 先卸载,再重新安装
    .\vcpkg\vcpkg.exe remove libsrtp:x64-windows-static --recurse
    .\vcpkg\vcpkg.exe install "libsrtp[openssl]:x64-windows-static"

5、编译 ZLMediaKit

从开始菜单中打开 VS2022 的开发者命令行模式(x64 Native Tools Command Prompt for VS 2022)。默认未找到基于 PowerShell 的 x64 位版本,可先使用 cmd 版本,然后执行 powershell 切换到 PowerShell。

tools

tools

5.1 修改 CMakeLists.txt

在文件里搜索: OPENSSL_LIBRARIES ,将内容修改成下面的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 查找 openssl 是否安装
# find openssl installed
find_package(OpenSSL QUIET)
if(OPENSSL_FOUND AND ENABLE_OPENSSL)
message(STATUS "found library: ${OPENSSL_LIBRARIES}, ENABLE_OPENSSL defined")
include_directories(${OPENSSL_INCLUDE_DIR})
update_cached_list(MK_COMPILE_DEFINITIONS ENABLE_OPENSSL)
update_cached_list(MK_LINK_LIBRARIES ${OPENSSL_LIBRARIES})
if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND OPENSSL_USE_STATIC_LIBS)
update_cached_list(MK_LINK_LIBRARIES ${CMAKE_DL_LIBS})
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
# Windows 下 OpenSSL(尤其是 vcpkg 静态库)会依赖 CryptoAPI
update_cached_list(MK_LINK_LIBRARIES Crypt32)
# 下面 WIN32 分支里已经有 WS2_32,这里不加也行
# update_cached_list(MK_LINK_LIBRARIES ws2_32)
endif()
else()
set(ENABLE_OPENSSL OFF)
set(ENABLE_WEBRTC OFF)
message(WARNING "openssl 未找到, rtmp 将不支持 flash 播放器, https/wss/rtsps/rtmps/webrtc 也将失效")
endif()

主要是替换成下面的脚本,其它不动(每个zlm版本可能都不太一样,需要注意修改的地方):

1
2
3
4
5
6
7
8
if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND OPENSSL_USE_STATIC_LIBS)
update_cached_list(MK_LINK_LIBRARIES ${CMAKE_DL_LIBS})
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
# Windows 下 OpenSSL(尤其是 vcpkg 静态库)会依赖 CryptoAPI
update_cached_list(MK_LINK_LIBRARIES Crypt32)
# 下面 WIN32 分支里已经有 WS2_32,这里不加也行
# update_cached_list(MK_LINK_LIBRARIES ws2_32)
endif()

5.1 执行编译命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 在zlmediakit 源码根目录下执行下面的命令。执行前请确保下载了 zlm 的源码,并且执行了 git submodule update --init --recursive
mkdir build
cd build

$VCPKG_CMAKE = 'C:\work\develop\vcpkg\scripts\buildsystems\vcpkg.cmake'
$VCPKG_INSTALL_PATH = 'C:\work\develop\vcpkg\installed\x64-windows-static'

$CMAKE_OPTIONS = @(
"-GCodeBlocks - Ninja"
"-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo"
"-DCMAKE_C_COMPILER:STRING=cl.exe"
"-DCMAKE_CXX_COMPILER:STRING=cl.exe"
"-DCMAKE_TOOLCHAIN_FILE:FILEPATH=$VCPKG_CMAKE"
"-DCMAKE_PREFIX_PATH:FILEPATH=$VCPKG_INSTALL_PATH"
"-DVCPKG_TARGET_TRIPLET:STRING=x86-windows-static"
"-DENABLE_WEBRTC:BOOL=ON"
)

cmake .. @CMAKE_OPTIONS
cmake --build . --target all

编译成功后,源码目录下多一个 release 目录,编译的程序在里面。
发布

6、运行

C:\work\develop\ZLMediaKit\release\windows\RelWithDebInfo 目录直接双击运行 MediaServer.exe 即可。

运行

只要复制 MediaServer.exe , MediaServer.exe , www目录,到其它位置,就可以使用基本的功能。

发布

7、问题

问题1:webrtc 显示 openssl 问题

原因:openssl 与 libsrtp 兼容有问题,需要重新编译libsrtp。

1
2
3
# 先卸载,再重新安装
.\vcpkg\vcpkg.exe remove libsrtp:x64-windows-static --recurse
.\vcpkg\vcpkg.exe install "libsrtp[openssl]:x64-windows-static"

说明

之前都没对 OpenClaw 上心过,因为 API 消耗比较大,费钱。 这次免费领了联通的 Coding Plan Pro,以及一台 2核4G内存的 云主机,所以就打算试下。
本文先介绍如何在 Ubuntu 云主机上安装 openClaw,后续用法等有时间再写文章。

1、操作系统 ubuntu 22.04 Server
2、OpenClaw 2026.2.26 版本
3、云服务器 2核4G
4、root用户

安装

安装 OpenClaw

我使用的是 云服务器,初始系统没有安装任何软件。
安装OpenClaw其实很简单,执行下面的命令一键安装:

1
curl -fsSL https://openclaw.ai/install.sh | bash

安装脚本会自动安装 Node、OpenClaw 等。 在界面全部选”Yes”就行。

安装完成后,Gateway 会启动失败(不用担心,后面配置好后,我们重启Gateway就行)。 最后界面会出现下面的信息:

1
2
3
4
5
6
7
8
9
10
11
12
🦞 OpenClaw 2026.2.26 (bc50708) — Your task has been queued; your dignity has been deprecated.

Dashboard URL: http://127.0.0.1:18789/#token=85xxxxxxxxxxxxd9c6b036328fe00d04fd3c98
Copy to clipboard unavailable.
No GUI detected. Open from your computer:
ssh -N -L 18789:127.0.0.1:18789 root@192.168.0.167
Then open:
http://localhost:18789/
http://localhost:18789/#token=85xxxxxxxxxxxxd9c6b036328fe00d04fd3c98
Docs:
https://docs.openclaw.ai/gateway/remote
https://docs.openclaw.ai/web/control-ui

此时,你无法正常访问:http://localhost:18789/#token=85xxxxxxxxxxxxd9c6b036328fe00d04fd3c98

不过忧虑,我们进行下面的配置。

安装界面1

安装界面2

安装 Nginx (如果只是本机使用,有图形界面,可以跳过此步骤)

执行下面的命令:

1
apt install -y nginx

如果弹出选择界面,直接确定即可。

进入 /etc/nginx/ ,找到 nginx.conf 文件,修改成如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
worker_connections 768;
# multi_accept on;
}

http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# SSL Settings
##

ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;

##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip on;

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

server {
listen 18790;
server_name your-domain.com; # 替换为你的域名或 IP

location / {
proxy_pass http://127.0.0.1:18789;

# 必需的头信息传递
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# WebSocket 支持(如果 openclaw 使用 WS)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

# 超时与缓冲优化(可选)
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
proxy_buffering on;
proxy_buffer_size 4k;
proxy_buffers 8 4k;
}

# 健康检查端点(可选)
location /health {
access_log off;
proxy_pass http://127.0.0.1:18789/health;
}
}
}

保存文件,执行下面的命令:

1
nginx -s reload

启动 Gateway

执行下面的命令:

1
2
openclaw config set gateway.mode local
openclaw gateway restart

local

控制台没有提示失败就是启动成功了,然后我们配置好防火墙,就能浏览器访问 Ui 界面了,比如:http://:18790/#token=85xxxxxxxxxxxxd9c6b036328fe00d04fd3c98

此时界面还会提示一些异常,请进行下一步

配置 OpenClaw

当你能访问UI界面后,其实还不能使用,需要修改 OpenClaw 的配置文件,该 文件在 /root/.openclaw 目录下。

这边我直接给出完整的配置,可以直接使用,配置里的 token、allowedOrigins、apiKey 等换成你自己的配置。 我这边使用的是联通免费的Coding Plan。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
{
"meta": {
"lastTouchedVersion": "2026.2.26",
"lastTouchedAt": "2026-02-28T13:04:18.321Z"
},
"wizard": {
"lastRunAt": "2026-02-28T11:48:10.150Z",
"lastRunVersion": "2026.2.26",
"lastRunCommand": "doctor",
"lastRunMode": "local"
},
"agents": {
"defaults": {
"compaction": {
"mode": "safeguard"
},
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
},
"model": {
"primary": "Unicom/MiniMax-M2.5"
},
"models": {
"Unicom/MiniMax-M2.5": {}
}
}
},
"messages": {
"ackReactionScope": "group-mentions"
},
"commands": {
"native": "auto",
"nativeSkills": "auto",
"restart": true,
"ownerDisplay": "raw"
},
"gateway": {
"mode": "local",
"auth": {
"mode": "token",
"token": "保留原有的Token"
},
"controlUi": {
"allowedOrigins": [
"http://60.13.54.190:18790",
"http://192.168.0.167:18790",
"http://192.168.0.167:18789",
"http://127.0.0.1:18789"
],
"allowInsecureAuth": true,
"dangerouslyDisableDeviceAuth": true
}
},
"models": {
"mode": "merge",
"providers": {
"Unicom": {
"baseUrl": "https://aigw-gzgy2.cucloud.cn:8443/v1",
"apiKey": "sk-sp-xxxxxxxxxxxxxxxxxxxxxxxxxxx",
"api": "openai-completions",
"models": [
{
"id": "MiniMax-M2.5",
"name": "MiniMax-M2.5",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 128000,
"maxTokens": 32000
},
{
"id": "Qwen3.5-397B-A17B",
"name": "Qwen3.5-397B-A17B",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 128000,
"maxTokens": 32000
}
]
}
}
}
}

修改好后,先备份原有的 openclaw.json 文件,然后替换掉原有的 文件,重启 Gateway:

1
openclaw gateway restart

启动成功后,你就可以在浏览器上访问了,比如:http://:18790/#token=85xxxxxxxxxxxxd9c6b036328fe00d04fd3c98

此时,界面一切正常!

UI

问题处理

1、提示:Gateway start blocked: set gateway.mode=local (current: unset) or pass –allow-unconfigured

解决:

1
2
openclaw config set gateway.mode local
openclaw gateway restart

2、提示:origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)

解决:
需要修改 openclaw.json 中 “gateway” 内容,添加 “controlUi” ,并重启 Gateway

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
"gateway": {
"mode": "local",
"auth": {
"mode": "token",
"token": "85xxxxxxxxd95d0d9c6b0xxxxxxxx04fd3c98"
},
"controlUi": {
"allowedOrigins": [
"http://60.13.54.190:18790",
"http://192.168.0.167:18790",
"http://192.168.0.167:18789",
"http://127.0.0.1:18789"
],
"allowInsecureAuth": true,
"dangerouslyDisableDeviceAuth": true
}
}

GitHub 传送门: https://github.com/OwnDing/gb28181

01. 一次“损失惨重”的存储卡事故

做这个项目的初衷,其实非常简单,就是被坑怕了。

之前我为了省事,家里安防一直用的是摄像头直连 NVR(网络硬盘录像机)的方案,录像数据都存在 NVR 插的 SD 存储卡里。我一直以为这套方案万无一失,直到有一天我想回放一段记录,才发现无论如何都读不出来。

折腾半天发现:存储卡坏了。

那张卡才用了 8 个月。因为监控是 24 小时高频读写,普通存储卡的寿命根本扛不住。更糟糕的是,卡坏了是悄无声息的,前面几个月的关键记录全没了,无法回放。

再去搜了一下现在的存储卡价格,稍微好点的高耐久卡(High Endurance)价格并不便宜。如果为了数据安全,还得定期更换,这不仅是钱的问题,更是维护成本的问题。

02. 想要“白嫖”云存储,却发现…

既然本地存储卡不靠谱,我第一反应是找个软件把视频存到电脑或者云服务器上。

现在的摄像头厂商倒是都提供“云存储”服务,数据在云端很安全,也不用担心卡坏了。但看了一眼价格,我立刻劝退了——每年都要交年费。如果家里有几个摄像头,几年的年费加起来都够买好几台新设备了。

作为一个开发者,我的第一反应当然是:“有没有开源的?

我找了一圈市面上的 GB28181 开源平台,结果挺失望的:

  • 要么是巨无霸,功能极其复杂,部署起来光是环境配置就要半天,还得装笨重的数据库。
  • 要么是陈年老代码,界面还停留在上个世纪,甚至跑不起来。
  • 要么就是功能残缺,只能看直播,不能回放,或者没有我需要的告警功能。

居然没有一个轻量、现代、能满足家庭或小微场景的开源方案?

“行吧,既然没有满意的,那我就自己写一个。”

03. 不止于“能用”,我做了一个全功能的轻量平台

我的目标很明确:它必须轻量(能跑在便宜机器上),必须免费(拒绝厂商云服务绑架),必须功能齐全。

经过一段时间的开发,**gb28181-video-platform** 诞生了。

它不仅解决了我最初的存储痛点,还加入了很多我自己在实际使用中想要的功能:

核心功能亮点:

  1. 彻底的数据掌控权(云端/本地存储)
  • 这是解决我“掉盘恐惧症”的核心。软件支持服务端录像(MP4),你可以自由设置存储配额保留天数
  • 自带自动清理功能,硬盘满了自动删旧录像,完全不用操心。
  1. 超低成本部署
  • 99元/年:你可以像我一样,买一台最便宜的云服务器(因为是轻量级,对配置要求很低),把服务部署在云上。
  • 0元:你也可以直接部署在家里的闲置电脑或 NAS 上。
  • 使用了 SQLite 数据库,省去了安装配置 MySQL 的繁琐,Docker 一键拉起,真正做到“开箱即用”。
  1. 现代化体验
  • 在线预览:支持 WebRTC(超低延迟)、HLS、HTTP-FLV。支持 H.265 网页播放(这在很多老旧开源项目中是个大坑,我把它填平了)。在谷歌浏览器中可直接在线预览 H.265 格式监控。
  • 历史回放:再也不用拔存储卡了,网页上直接拖动进度条看录像。
  • **云台控制 (PTZ)**:坐在办公室,就能远程控制家里的摄像头转动、变焦,想看哪就看哪。
  1. AI 智能赋能
  • 光录像还不够,我接入了 YOLOv8
  • 支持人员检测告警。只有当画面里出现人时才重点关注,并自动抓拍快照。这比传统摄像头的“像素变化移动侦测”要准得多,误报少了很多。

04. 技术栈与开源

为了保证性能和开发效率,我选择了目前比较主流且现代的技术栈:

  • 后端:Java (Spring Boot) —— 稳定强大。
  • 前端:React + Vite —— 界面得好看,操作得丝滑。
  • 流媒体:ZLMediaKit —— 高性能流媒体核心。
  • AI:Python + YOLOv8 —— 目前最火的目标检测方案。

所有的代码都已经开源在 GitHub 上。如果你也和我一样,不想被存储卡故障折磨,不想给厂商交年费,或者单纯想折腾一套属于自己的家庭安防系统,欢迎来试用!

项目地址: https://github.com/OwnDing/gb28181

设备管理

在线预览

能力中心

从买房踩坑到手搓一个日照网站:这玩意儿真能帮你避开“阴森森”的二手房

大家好啊!今天想跟你们唠点实在的——关于买房时那个让人抓狂的“日照问题”。多年前夏天,我差点在xx看中一套二手房,户型、价格都挺香,结果中介轻飘飘一句“采光嘛,还行吧”就糊弄过去了。等我挑冬天进去才发现,下午三点后客厅就黑得像电影院,晾个衣服都得靠烘干机。气得我直拍大腿:为啥没人告诉我真相?

后来一打听,市面上那些专业日照分析软件,动辄几千块年费,操作复杂得像开飞机——导入CAD图纸、调参数、等渲染……普通购房者谁受得了这个?尤其看二手房,房东和中介哪会给你掏钱买报告?我翻遍了小红书和知乎,一堆人吐槽:“想看看阳光能不能照进我家飘窗,咋比考驾照还难?”

一拍脑袋,我决定自己搞个工具。
我不是房产中介,就是个业余爱捣鼓的普通人。前几天,趁着周末和深夜,我吭哧吭哧开始写代码。说真的,过程挺狼狈:3D建模部分卡壳时,差点把键盘砸了;太阳轨迹算法调试到凌晨三点,咖啡杯堆成塔。不过呢,这次我偷偷用了点“外挂”——现在不是流行AI辅助编程嘛,像Copilot/ChatGPT这类工具帮我快速生成些基础代码片段,省了不少重复劳动。但核心逻辑全是自己抠的,比如怎么把经纬度、节气、楼高这些变量揉在一起算出真实阴影。重点不是AI多神,而是它让我这个半吊子能把精力花在刀刃上:让工具真正“傻瓜化”。

于是,这个小破站诞生了:楼盘日照及噪音分析计算系统(名字土了点,但好记!)

打开它,你不会看到一堆吓人的参数表。首页就是一个干净的3D网格地图,像玩《我的世界》一样简单:

  • 拖拖拽拽画房子:点“+”按钮加一栋楼,鼠标一拉就能调高度、改位置;不满意?直接删掉重来。二手房小区布局乱?自己还原真实场景就行。
  • 太阳会“动”给你看:选个日期,比如冬至,界面上立刻画出太阳一整天的轨迹线,连阴影怎么爬过你家阳台都清清楚楚。再也不用脑补“下午四点会不会晒被子”了。
  • 最狠的是这功能:点中任意一栋楼,再选具体楼层和户号(比如“5楼东户”),它直接甩给你一张表——24节气里,每天阳光照进你家窗台的精确时间。春分这天能晒2.5小时?大寒可能只有40分钟?数据全摊开,中介忽悠不了你。

上周我拿它试了试老家亲戚看中的一套老小区房子。亲戚原本觉得“楼层高肯定亮堂”,但SunSpot一算:对面新盖的写字楼在冬至那天,把阳光全挡了,下午根本见不着太阳。亲戚果断换房,后来发微信跟我吐槽:“早有这玩意儿,我何必白跑三趟售楼处!”

为什么坚持做成免费+极简?

因为我太懂普通人的痛了——买房是大事,不该被信息差割韭菜。那些收费软件把简单问题搞复杂,本质是吃定了你急着交定金。SunSpot没有登录墙、没有付费弹窗(靠我收入养着服务器呢)。技术上当然不完美:小bug还在修……但核心就一条:让你5分钟内,看清阳光会不会“住”进你家。

最后说点掏心窝子的

写代码时,我妈总笑我:“你一个买房的,咋还搞起气象站了?”但每次收到用户留言说“靠它避开了阴暗房”,就觉得那些熬夜的夜没白熬。技术不该是门槛,而是帮普通人把生活理得更明白的小梯子。

如果你最近在看房,尤其二手房,真心建议去试试 楼盘日照及噪音分析计算系统。操作有疑问?评论区吼我,我手把手教。也欢迎吐槽——这站活着的唯一意义,就是替你挡住那些“看不见的阴影”。

1

2

3

4

5

0%