在静态地图上真的算一次「3 公里内的门店」

点击地图任意位置 = 设置你的坐标(十字标),拖滑杆 = ST_DWithin 的半径;右侧表按 <-> 就近排序,距离是拿经纬度真算的(haversine 大圆公式,与 geography 同思路)。勾选「多边形模式」切换成 ST_Contains 的点内判定。零请求、零后端。

半径模式 (地图只是示意平面,坐标↔经纬度线性映射)

查询结果(就近排序)

门店距离命中
stores=# 当前参数生成的 SQL(随点击实时变化)

      

三个高频翻车点再钉一遍:经纬度顺序(PostGIS 是 lng, lat,多数业务接口是 lat, lng);插数据忘了 ST_SetSRID(..., 4326) 会撞 mixed SRID;在 geometry 上算 ST_Distance 得到的是「度」不是米——要米就 cast 成 geography。

门店坐标为样本数据;距离用地球半径 6371 km 的大圆公式计算,与 PostGIS geography 的球面距离同一思路(细微差异来自采用的地球半径与椭球模型)。半径圈按纵向比例绘制,仅作示意。