level 10
dawanglin
楼主
主背景:做过一段时间外业测绘,现在在做城市商业调查,发现传统GIS数据在商业态更新上特别滞后,就自己动手搭了套系统。不是公司项目,纯个人折腾,来贴吧跟老哥们交流下技术思路。一、发现的问题现在OpenStreetMap或者高德百度,POI(兴趣点)更新太慢,而且只有一个坐标点,没法反映:
一个店铺实际上占用了连续几个门头(door)
同个门面三年内换了三次招牌(时序缺失)
商场内部铺位变化(微观尺度缺失)
二、我的空间编码方案(核心的GIS部分)借鉴道路编码逻辑,我搞了三层空间骨架,不依赖商业体名称,纯物理分割:
Road(道路):自有路名的完整路段,用市级道路代码+本地段号
Side(侧向):以道路中心线区分A/B侧(类似里程桩的左右幅)
Seg(分段):关键创新点——按商业密度/建筑开口自然切分,比如:
连续五家店铺且中间无断点 = 一个Seg
遇到围墙/住宅断档 = Seg边界
平均长度20-50米,一个城市主城区大概能分出几百个Seg
为什么不用网格? 网格会切碎店铺,而seg保持商业连续性,同时又是可复现的空间单元(两个人去调查,对seg边界判断一致)。三、数据模型(简化版)核心表结构大概是这个逻辑(用的PostGIS):

关键:每个状态变更都带视频证据和空间关联,不是网上扒的数据,是实打实走街拍的。四、外业调查Pipeline不是先建库再填数,而是反过来:
预分割:室内用卫星图+街景预划seg(QGIS手搓)
外业巡游:按seg顺序走,每到一个seg拍全景+单个门头特写
现场速查:纸质表格(对,就是纸)记录每个door的状态,回室内入库
时序对比:同一个seg_id,对比三个月前的视频,标记change log
五、目前进度
试点城市:1个老城区(约800个seg)
数据跨度:6个月(10轮巡查)
工具链:QGIS(空间管理)+ PostgreSQL/PostGIS(数据库)+ 自研的csv母表导入脚本
六、困惑/求教
1seg的动态切分问题:如果中间新开了一条支路,seg边界要调整,历史数据怎么回溯?(现在是用版本号控制,但感觉笨)
2视频数据管理:走街拍的视频太大了,现在存本地硬盘,有没有好的空间数据库方案能关联视频时序?
3当单体(door/shop)达到万级,更新频次按月/周计算,且要交叉查询「谁在什么时候基于哪次CV切割改变了什么」,普通的「更新即覆盖」完全不够用。
4众包可能性:如果想让其他人也能按这个标准采集,怎么保证seg分割的一致性?(类似OpenStreetMap的评审机制?)
2026年02月02日 05点02分
1
一个店铺实际上占用了连续几个门头(door)
同个门面三年内换了三次招牌(时序缺失)
商场内部铺位变化(微观尺度缺失)
二、我的空间编码方案(核心的GIS部分)借鉴道路编码逻辑,我搞了三层空间骨架,不依赖商业体名称,纯物理分割:
Road(道路):自有路名的完整路段,用市级道路代码+本地段号
Side(侧向):以道路中心线区分A/B侧(类似里程桩的左右幅)
Seg(分段):关键创新点——按商业密度/建筑开口自然切分,比如:
连续五家店铺且中间无断点 = 一个Seg
遇到围墙/住宅断档 = Seg边界
平均长度20-50米,一个城市主城区大概能分出几百个Seg
为什么不用网格? 网格会切碎店铺,而seg保持商业连续性,同时又是可复现的空间单元(两个人去调查,对seg边界判断一致)。三、数据模型(简化版)核心表结构大概是这个逻辑(用的PostGIS):

关键:每个状态变更都带视频证据和空间关联,不是网上扒的数据,是实打实走街拍的。四、外业调查Pipeline不是先建库再填数,而是反过来:预分割:室内用卫星图+街景预划seg(QGIS手搓)
外业巡游:按seg顺序走,每到一个seg拍全景+单个门头特写
现场速查:纸质表格(对,就是纸)记录每个door的状态,回室内入库
时序对比:同一个seg_id,对比三个月前的视频,标记change log
五、目前进度
试点城市:1个老城区(约800个seg)
数据跨度:6个月(10轮巡查)
工具链:QGIS(空间管理)+ PostgreSQL/PostGIS(数据库)+ 自研的csv母表导入脚本
六、困惑/求教
1seg的动态切分问题:如果中间新开了一条支路,seg边界要调整,历史数据怎么回溯?(现在是用版本号控制,但感觉笨)
2视频数据管理:走街拍的视频太大了,现在存本地硬盘,有没有好的空间数据库方案能关联视频时序?
3当单体(door/shop)达到万级,更新频次按月/周计算,且要交叉查询「谁在什么时候基于哪次CV切割改变了什么」,普通的「更新即覆盖」完全不够用。
4众包可能性:如果想让其他人也能按这个标准采集,怎么保证seg分割的一致性?(类似OpenStreetMap的评审机制?)