


























选址分析中对POI的处理需求是比较常见的:给定一批竞品 POI,算出来它们跟自家门店的距离,看看覆盖盲区在哪。
听起来就是个 Excel 公式的事。但如果你坐标系不对,距离和逻辑偏差会很大。
把踩的坑和流程梳理了一下,给要做类似分析的同学当个参考。

中国的地图坐标体系是个老话题了,但每次总会有人栽进去:
两者在例如广州、南宁省会这种级别城市的偏差在 300~500 米 左右。什么后果?
我的做法很简单:利用高德开放平台的坐标拾取器(个人认证免费),把所有来源不一的 POI 坐标统一锚定到 GCJ02 体系,再做后续计算。

这步是数据清洗里最基础但也最关键的一环。
拿到的原始数据大概率长这样:
POINT (108.368797 22.870238)
这是 WKT 格式,需要把它们拆成两列干净的数值。
提取经度:
=TRIM(RIGHT(C14, LEN(C14) - FIND(" ", C14)))
C14 是包含 POINT (...) 的原始单元格,这句公式的逻辑是:找到空格的位置,把后半段切出来,然后去掉两端多余空格。
纬度同理,用 LEFT 取空格前的部分。
最终目标:得到两列纯数字的经纬度,没有括号、没有字母、没有多余的东西。
如果想快速摸底,可以用经度差近似排序:
=INDEX(已有POI存放!$D$2:$D$50,
MATCH(MIN(ABS(已有POI存放!$D$2:$D$50 - 完整list!E14)),
ABS(已有POI存放!$D$2:$D$50 - 完整list!E14), 0))
用途:快速找出东西方向上最接近的店。局限:完全忽略了纬度(南北方向),不能作为最终决策依据。
除非你在赤道附近做跨国物流,否则城市级选址请直接用下面的方法。
这是商业分析的标准做法,计算地球表面两点间的最短弧长,精度远高于平面近似。
=6371 * 2 * ASIN(
SQRT(
SIN((RADIANS(D14) - RADIANS(H14)) / 2)^2
+ COS(RADIANS(D14)) * COS(RADIANS(H14))
* SIN((RADIANS(E14) - RADIANS(F14)) / 2)^2
)
)
参数对照:
D14 → 目标点纬度(Lat)E14 → 目标点经度(Lng)H14 → 已有 POI 纬度(Lat)F14 → 已有 POI 经度(Lng)6371 → 地球半径(公里)输出结果:两点间的直线距离,单位公里。
工具到位了,流程就走得通。整个链路分四步:
Step 1:坐标锚定
打开高德地图开放平台 → 坐标拾取器。对缺失坐标的重点楼宇、竞品点位进行查询复制。确保所有坐标统一到 GCJ02 体系。
Step 2:计算最近距离
在「完整列表」表中,对每一行 POI 使用 Haversine 公式,计算该点到已有门店列表中每一个点的距离。
Step 3:反向匹配门店属性
用 INDEX + MATCH(配合 MIN) 找到最近距离对应的行,把该行的门店名称、经营等级、客流数据抓取回来。
Step 4:出分析结论
最终你会得到一张这样的表:
POI名称 | 经度 | 纬度 | 最近竞品 | 距离(km) | 竞品经营额
青秀龙湖 | 108.36 | 22.84 | 万象城 | 1.2 | 8000 万
基于这张表,你可以直接输出:

这套流程走下来,解决的不只是「数据在哪」的问题,更是「数据怎么用」的问题。
从地理位置到商业价值,中间隔的就是这几步清洗和计算。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。