mysql 经纬度在某个多边形内
时间: 2023-08-06 15:14:26 浏览: 301
全国 省 市 区 经纬度 mysql数据
要查询在某个多边形内的经纬度数据,可以使用MySQL的空间函数ST_CONTAINS。ST_CONTAINS函数可以用来判断一点是否在一个多边形内部。
首先,在表格中创建一个字段用于存储经纬度数据,并且将其设置为MySQL的空间数据类型point。例如:
```sql
ALTER TABLE `table_name` ADD COLUMN `location` POINT NOT NULL AFTER `id`;
```
然后,插入经纬度数据:
```sql
INSERT INTO `table_name` (`location`) VALUES (POINT(116.397128, 39.916527));
```
接下来,在查询时使用ST_CONTAINS函数来判断点是否在指定的多边形中。例如:
```sql
SELECT *
FROM `table_name`
WHERE ST_CONTAINS(POLYGON((116.403322 39.920255, 116.405795 39.912245, 116.394088 39.908255, 116.391615 39.916266, 116.403322 39.920255)), `location`);
```
上面的查询语句中,POLYGON函数用于定义一个多边形,并且传入多边形的各个点的经纬度坐标。在ST_CONTAINS函数中,第一个参数是多边形,第二个参数是要判断的点。如果点在多边形内,那么ST_CONTAINS函数会返回1,否则返回0。查询结果即为在指定多边形内的经纬度数据。
阅读全文