# **ST\_WITHIN**

判断某个地点是否在指定的地理范围内。

PostGIS标准参考：https://postgis.net/docs/manual-3.5/ST\_Within.html

## 语法{#grammar}

ST\_WITHIN(**geometry1**, **geometry2**, **distance**)

- **geometry1**：必需，表示一个地理坐标，支持地理坐标类型字段，或者通过[ST\_POINT](./ST_POINT.md)和[ST\_GEOMFROMTEXT](./ST_GEOMFROMTEXT.md)函数将经纬度转换为地理坐标类型。
- **geometry2**：必需，表示一个地理区域，支持地理坐标类型字段，或者通过[ST\_POINT](./ST_POINT.md)和[ST\_GEOMFROMTEXT](./ST_GEOMFROMTEXT.md)函数将经纬度转换为地理坐标类型。
- **distance**：可选，表示距离**geometry2**区域边界的距离，该距离内的坐标点也属于此函数表达的范围内，单位米。常用于方圆500米范围内的查询。

## 示例{#examples}

1. `ST_WITHIN(ST_POINT([企业信息].[经度], [企业信息].[纬度]), ST_POINT(117.195907, 39.118327), 500)` 查询指定地点方圆500米内的企业
2. `ST_WITHIN([企业信息].[地理坐标], ST_POINT(117.195907, 39.118327), 500)` 同上，其中经纬度是地理坐标类型字段
3. `ST_WITHIN([企业信息].[地理坐标], ST_GEOMFROMTEXT('POINT(117.195907 39.118327)'), 500)` 同上
4. `ST_WITHIN(ST_POINT([企业信息].[经度],[企业信息].[纬度]), ST_GEOMFROMTEXT('POLYGON((117.195907 39.118327, 116.925304 38.935671, 117.654173 39.032846, 117.195907 39.118327))'))` 查询用户绘制的一个多边形内的企业。
5. `ST_WITHIN([企业信息].[地理坐标], ST_GEOMFROMTEXT('POLYGON((117.195907 39.118327, 116.925304 38.935671, 117.654173 39.032846, 117.195907 39.118327))'))` 同上
