跳到主要内容

按米制距离筛选

['distance', geometry]返回真实WGS84要素与目标几何之间的距离,单位米。可用于图层filter、源/渲染查询filter和paint,写法尽可能参考MapLibre。

const target = { type: 'Point', coordinates: [116.4, 39.9] };
map.setFilter('places', ['<', ['distance', target], 1000]);
await map.sqs.flush({ render: true });

支持点/多点、线/多线、面/多面、Feature/FeatureCollection/GeometryCollection目标。使用半径6371008.8米的球体;点点为短弧距离,点线取大圆垂足/端点最小,线线交叉为0。日期线连续处理;对跖端点线段有歧义,明确拒绝。

面内部及孔洞判定沿用within的连续经纬度平面拓扑,内部距离0,非内部距离用球面短弧。它不是椭球测量,也不是完整球面多边形拓扑;严格测量/空间分析应使用GIS引擎。目标面继承within的窄范围/闭合/有效拓扑边界。

源与目标各最多2048坐标、集合256项、8层,8192求值比较;超限报错。需要08.30真实WGS84几何上下文;缺几何或legacy投影数据明确不可用,Rust调用方按spatial-within说明提供geometry。

语法参考公开MapLibre distance规范,实现独立自研。原始SDK用view.flush()。设备与正式发行另行验收。