/~learn/s/af99b44f
> 建档日期:2026-10-19 | 状态:灵感记录 / 未立项
一句话:一个由用户自己标记"我家/这栋楼有小强"的 UGC 地图产品,聚合后给租房、买房、出差长住的人做参考。
---
来自一次真实的退租事件:天津滨海新区一套公寓,看房时肉眼看不到小强,入住两个月后租客以"屋里到处是小强、楼道也能看到"为由解约,房屋重新挂牌并降价 150 元/月。
这个事件暴露了三个信息缺口:
核心洞察:租房/买房决策中,"有没有虫害"是一个高频、高痛、零供给的信息维度。
---
| 产品 | 形态 | 覆盖 | 与我们的差异 |
| --- | --- | --- | --- |
| Pest Map: Bug & Rodent Tracker(iOS) | 匿名互动地图 + 热力图,9 类虫害 | 海外为主,英文 | 最接近的对标;无中文、无中国小区数据 |
| Bedbug Registry(美/加) | 地址级臭虫 UGC 报告 | 北美 | 只做臭虫;证明地址级 UGC 可行,但有诽谤争议 |
| Murcia 市政府虫害上报 | 政府 geolocated 报告 | 西班牙单城 | 政府主导,非消费者产品 |
| 各地"随手拍"小程序 | 政务投诉通道 | 中国多城 | 是投诉流程,不是可查询地图 |
| 黑猫投诉 / 大众点评 / 小红书 | 文本投诉 | 全国 | 非结构化,不能按小区检索 |
| 消杀公司内部系统 | 工单 + 热力图 | 各公司 | 不对外,数据不互通 |
结论:中国市场目前没有成熟的"地址级、可查询、UGC 驱动"的居住虫害地图。这是一个真实空白。
但要注意:"没有竞品"往往意味着"需求没被验证"或"模式有硬伤",需要同时看风险(见第七节)。
---
一个微信小程序,三个页面:
租房前 → 打开小程序 → 搜小区名 → 看报告数与最近时间
→ 有红色标记 → 看房时重点检查 → 决定租/不租
入住后 → 发现小强 → 匿名上报 → 帮助下一个租客
---
| 人群 | 为什么先切 |
| --- | --- |
| 刚被虫害坑过的租客 | 有强表达欲,最愿意上报 |
| 正在换房的租房人群 | 有查询需求,转化快 |
| 房东/二房东 | 有动力公示"已消杀"来提升出租率 |
| 公寓/长租公寓运营方 | 有动力做差异化背书 |
地图产品没有数据就没人用,没人用就没有数据。 可行解法:
---
这是这类产品生死攸关的部分。
| 风险 | 表现 | 对策 |
| --- | --- | --- |
| 恶意抹黑 | 竞争对手/前租客刷差评 | 实名手机号 + 地理位置校验 + 同设备频控 |
| 误报 | 把偶发一只当成泛滥 | 严重程度分级 + 多用户交叉验证 |
| 数据稀疏 | 大部分小区 0 报告 | 区分"无报告"与"无虫害",不默认绿色 |
| 法律风险 | 小区/物业起诉诽谤 | 只展示"用户报告"而非"事实认定";提供申诉下架通道 |
| 隐私 | 精确到户会暴露住户 | 只到楼栋/小区层级,不显示门牌号 |
产品文案必须始终是"有 N 位用户报告",而不是"这个小区有小强"。
---
> 注意:B 端付费认领与 UGC 中立性存在天然冲突,必须把"付费"和"删负面"严格隔离,否则产品信任一次性崩塌。
---
| 风险 | 等级 | 说明 |
| --- | --- | --- |
| 法律(诽谤/名誉权) | 高 | 地址级负面信息在中国有明确法律风险,需法务前置 |
| 冷启动失败 | 高 | 双边网络效应,数据稀疏时产品无价值 |
| 数据质量 | 中高 | 刷单、误报、情绪化报告 |
| 平台复制 | 中 | 贝壳/美团/大众点评若加入该字段,独立产品空间被压缩 |
| 变现困难 | 中 | B 端付费意愿取决于能否带来出租率提升 |
---
先做一个公众号/小红书账号 + 问卷,验证两件事:
如果 2 周内收集不到 200 条有效上报,说明供给端动力不足,应重新设计激励。
| 指标 | 定义 | 目标 |
| --- | --- | --- |
| 上报转化率 | 有效上报数 ÷ 小区详情页 UV(不用全站访问量做分母,会被地图页闲逛流量稀释) | > 5% |
| 单小区有效报告 | 按设备去重,90 天滚动 | ≥ 3 个不同设备才展示 |
| 查询→看房行为转化 | 难以直接测,用问卷验证 | — |
| 申诉下架率 | 复核成立数 ÷ 申诉总数(分母是申诉数,不是报告数) | < 2% |
| 数据新鲜度 | 有报告的小区中,最近报告在 90 天内的占比 | 持续跟踪 |
> 口径细节见第十一章:文案写"位用户",聚合就必须按设备去重,不能按条数。
---
---
| 原方案 | 修正后 | 理由 |
| --- | --- | --- |
| 地图页首屏 | 首屏 = 搜索框 + 城市榜单("近 90 天报告最多的小区") | 数据稀疏时空地图是负资产 |
| 地图按楼栋打点 | 地图降为二级 Tab,按区/街道聚合 | 降低法律风险与渲染压力 |
| 三页面 | 四页面(新增"申诉 / 纠错") | 平台避风港与过审的必备项 |
页面清单:
| 层 | 方案 | 备注 |
| --- | --- | --- |
| 载体 | 微信小程序(原生或 Taro) | Taro 便于后续扩抖音 / 支付宝 |
| 地图 | <map> 组件(腾讯底图) | 小程序默认底图即腾讯,无需处理瓦片 |
| POI 检索 | 腾讯位置服务 WebService API | 需在小程序后台配置 request 合法域名、key 绑定 AppID |
| 后端 | 微信云开发即可跑 MVP | 主键用 poi_id,不是经纬度 |
必须做的技术约束:
msgSecCheck / mediaCheckAsync 必须接入,否则基本过不了审主体与类目:建议企业主体,个人主体在类目和 UGC 审核上受限明显。
需要的其实是三类数据,只有最后一类属于自己:
| 层 | 内容 | 来源 | 能否自建 |
| --- | --- | --- | --- |
| 底图 | 瓦片、审图号、测绘资质 | 腾讯 / 高德 SDK | 不能,也不需要 |
| 空间底数 | 小区 POI / AOI、行政区划 | 腾讯位置服务、高德开放平台 | 可接,但需商用授权 |
| 业务数据 | 谁在哪个小区报告过什么 | 用户上报 | 唯一可自建、可沉淀的资产 |
1. 底图
用腾讯位置服务(小程序 <map> 默认)或高德 SDK。测绘资质、审图号由服务商持有,开发者只是调用方。不要自己切瓦片、做底图——那会触碰《地图管理条例》,需要测绘资质。
2. 空间底数(小区 / 楼栋)
/ws/place/v1/search、高德 /v3/place/text,用"住宅小区"类目 + 城市限定,可拿到小区名、地址、坐标。district 接口。3. 业务数据(真正的壁垒)
wx.getLocation → 逆地理 → 落到具体 POI,以 POI ID 作主键,天然与地图对齐,无需自建坐标体系。明确不做:
补充:微信对"可能损害他人商誉的地址级负面内容"审核趋严,UGC 叠加地图时被驳回的概率不低。这也是建议先做"搜索 + 榜单"、弱化地图的原因之一。
---
report):用户提交的原始记录,只增不改、永久留存。poi_stat_daily):按天预聚合的统计,随时可重算。同类产品常犯的错误是把"报告数""风险等级""是否安全"塞进同一张表的同一个字段,结果口径一改就要回刷历史、阈值一调就无法重算。分层之后,阈值随便调,历史数据不动。
report (
id bigint pk
poi_id bigint -- 自有 POI 主键
building_text varchar(32) -- 用户原样输入
building_norm varchar(16) -- 归一化:1栋/1号楼/1#/A座 → 1
location_type tinyint -- 1室内 2楼道 3公区 4垃圾房
pest_type tinyint -- 1蟑螂 2鼠 3蚊 4臭虫 5蚁 6白蚁 9不确定
severity tinyint -- 1偶见单只 2多次看到 3成群或已请消杀
observed_at datetime -- 目击时间(用户填)
created_at datetime -- 提交时间(系统写)
evidence json -- 照片 URL 数组,可为空
geo_lng decimal(10,7) -- gcj02
geo_lat decimal(10,7)
geo_dist int -- 与 POI 中心距离(米),写入时计算
witness_type tinyint -- 1亲见 2合作方工单 3公开投诉
device_hash char(32)
phone_hash char(32)
status tinyint -- 0待审 1可见 2隐藏 3驳回
weight decimal(3,2) -- 反作弊权重,默认 1.00
)
observed_at 必须与 created_at 分离:用户常是周五看到、周一才上报,只存提交时间会让时间衰减算错。约束为不晚于当前时间、不早于 180 天;超出范围的直接拒绝而非静默截断——静默截断会让数据污染永远查不出来。building_norm 用代码归一化:去掉"栋 / 号楼 / 幢 / # / 座 / 单元",全角转半角,字母大写;归一化失败保留原文并标记待抽检。不做模糊匹配,否则 1 栋和 11 栋会被合并。location_type 是表里最有分析价值的字段:虫害扩散路径是垃圾房 → 楼道 → 室内,该字段支撑未来的"风险传导"分析,且比"户"安全得多。severity 三档必须给文字定义:UI 上就是三句话,不给用户看"3 分"。evidence 不强制:强制拍照会让上报转化率腰斩,而照片对聚合的边际价值很低;其真正用途是申诉举证。phone_hash、device_hash,既满足防刷,也在被要求提供用户信息时天然无法提供。
楼栋必须记,因为虫害沿竖向管道与烟道扩散,楼栋是最小有意义单元。但楼栋号 + 精确时间在一梯两户的老小区可反推到具体住户。两条硬规则:
第 1 条看似损失信息量,实际是在保护最先上报的那批人——而那批人正是最需要的种子用户。
(1)按设备算,不按条数算
文案写的是"有 N 位用户报告",只要用"位",聚合就必须按 device_hash 去重,否则是会被用户当场拆穿的谎。规则:同设备 + 同 POI + 同虫种 + 30 天内 = 1 条。
(2)窗口与衰减
| 报告年龄 | 权重 | 是否计入风险等级 |
| --- | --- | --- |
| 0–90 天 | 1.0 | 是 |
| 90–180 天 | 0.5 | 是 |
| > 180 天 | 0 | 否,但保留在历史时间线 |
衰减的只是风险等级,不是历史记录。180 天前的报告仍永久可查、仍显示"最近一次报告:2026-03"。
(3)阈值 3 的统计依据
设单条报告为真的概率 p,n 条独立报告中至少一条为真的概率为 1-(1-p)^n:
| 单条可信度 p | n=1 | n=2 | n=3 | n=5 |
| --- | --- | --- | --- | --- |
| 0.5 | 50% | 75% | 88% | 97% |
| 0.6 | 60% | 84% | 94% | 99% |
| 0.7 | 70% | 91% | 97% | 99.8% |
p=0.6、n=3 时约 94%,即"3 条"的来源。两个陷阱:
| 90 天有效设备数 | 颜色 | 文案 |
| --- | --- | --- |
| 0(从未有人查过) | 灰 | "该小区还没有数据,欢迎第一个上报" |
| 0(有人查过,无报告) | 灰 | "近 90 天暂无用户报告" |
| 0(历史有,已超 180 天) | 灰 | "最近一次报告:2026-03" |
| 1–2 | 无颜色 | "有 N 位用户报告,样本较少" |
| 3–5 | 黄 | "近 90 天有 N 位用户报告" |
| ≥ 6 | 红 | "近 90 天有 N 位用户报告" |
两个刻意设计:
提交 → pending(待审)
→ visible(可见)
→ hidden(被申诉 / 风控隐藏)
→ rejected(复核确认不实)
hidden,永不物理删除报告,它是唯一的举证材料。rejected 不进任何前台统计,但保留在库中,且该设备 weight 永久降至 0.3。
| 规则 | 处置 |
| --- | --- |
| 同设备 30 天内同 POI 同虫种重复 | 合并计 1 条 |
| 同 IP 段 1 小时内跨 3 个以上 POI 上报 | weight 0.5,进人工队列 |
| 注册 24 小时内首条报告 | weight 0.5 |
| 曾被复核认定的设备 | weight 永久 0.3 |
关键原则:降权,不删除。降权报告仍可见(可申诉),但不影响风险等级——既防刷,又不误杀真实用户,还保留证据链。
每条报告需能证明"这是用户说的,不是平台认定的":
geo_dist上传时必须剥离照片 EXIF:用户在卧室拍的照片带精确 GPS 与拍摄时间,不剥离等于直接泄露住户位置。
| 数据 | 期限 | 理由 |
| --- | --- | --- |
| 报告内容与虫种、楼栋 | 永久 | 核心资产 |
| 精确定位坐标 | 180 天后降精度到小区中心 | 最小化原则 |
| 设备 / 手机 hash | 账号注销即删 | 可识别信息 |
| 照片 | 永久,但已剥 EXIF | 举证需要 |
不要给小区打 0–100 分的"虫害指数"。
只展示三样:报告数、最近一次时间、虫种分布,三者都是可证伪的陈述。
---