mysql判断经纬度是否在多边形内
时间: 2023-08-21 21:27:42 浏览: 259
判断指定的经纬度坐标点是否落在指定的多边形区域内
5星 · 资源好评率100%
可以使用MySQL的GIS函数来判断一个经纬度点是否在一个多边形内部。具体步骤如下:
1. 创建一个多边形的坐标点集合,以空间数据类型存储在MySQL中。
2. 将待判断的经纬度点转换成MySQL的空间数据类型。
3. 使用MySQL的ST_CONTAINS函数判断该点是否在多边形内部。该函数的参数为两个空间数据类型,返回值为1表示在内部,为0表示在外部。
示例代码如下:
```
-- 创建多边形
CREATE TABLE polygon (
id INT PRIMARY KEY,
name VARCHAR(50),
coords POLYGON
);
INSERT INTO polygon VALUES (1, 'polygon1',
POLYGON((
-122.39988899230957 37.793609848134154,
-122.40020227432251 37.79243807767399,
-122.39832878112793 37.79230285665168,
-122.39806461334228 37.793546587392756,
-122.39988899230957 37.793609848134154
)));
-- 判断点是否在多边形内部
SELECT ST_CONTAINS(
POLYGON((-122.39997863769531 37.79328199520101)),
coords) AS is_inside
FROM polygon;
```
上面的代码创建了一个名为`polygon`的表,其中存储了一个多边形的坐标点集合。接着,使用ST_CONTAINS函数判断一个经纬度点是否在多边形内部,返回值为1表示在内部。
阅读全文