按多边形筛选点和线
['within', boundary]可用于图层filter、渲染/图源查询filter和共同paint表达式。boundary是WGS84 Polygon/MultiPolygon/Feature/FeatureCollection;使用图源真实几何,与当前地图投影无关。
const boundary = { type: 'Polygon', coordinates: [
[[0, 0], [10, 0], [10, 10], [0, 10], [0, 0]]
] };
map.setFilter('points', ['within', boundary]);
await map.sqs.flush({ render: true });
const matches = await map.querySourceFeatures('places', {
filter: ['within', boundary]
});
点必须严格在面内,边界与孔洞不算内部。线的端点和全段必须在同一个面内部,触碰边界或穿过孔洞返回false;多点/多线要求每个部分满足。多个目标面逐面检查,暂不合并重叠面用于整线联合覆盖。Polygon/GeometryCollection要素当前返回false。输入不能是任意其它几何类型。
日期线窄范围连续展开,每环经度跨度须小于180度;不支持绕球闭合。最多2048边界坐标、256面/环、8层集合和8192求值比较,超限明确报错。坐标须有限,环必须闭合且面积非零;提供方负责保证自交等拓扑有效性。
Rust StyleFeature新增可选WGS84 geometry,直接构造调用方须同步;缺几何上下文明确不可用。旧桌面CPU属性样式仅WGS84支持,投影图源需先转换。共同命名图源/图层宿主使用真实WGS84显示几何。空间处理/拓扑修复仍由GIS引擎提供。
语法参考MapLibre公开within规范,SqsMap独立实现。原始SDK用view.flush(),实际设备与正式发行另行验收。
当前谓词在连续展开的经纬度平面计算线段/环拓扑,不是测地线计算或拓扑修复。