gpt4 book ai didi

mysql - 在 MySQL 5.7 中查找点是否在多边形内

转载 作者:可可西里 更新时间:2023-11-01 06:33:42 24 4
gpt4 key购买 nike

我需要找到用户搜索位置中包含的所有属性;位置可以是城市、县等。每个属性都有纬度和经度,可用于在 MySQL 中创建点。位置类型为 GEOMETRY,其中大多数是 POLYGON 和 MULTIPOLYGONS。经过一周的搜索和故障排除后,我似乎无法让数据库给我匹配。这是场景。

SET @area = (SELECT area.polygon from area where area.city = 'Charlotte' and area.type =  'city');
SET @property = (SELECT property.point from property where id = 397315);
SELECT st_contains(@area, @property);

@area 获取夏洛特的 POLYGON。

@property 获得我 100% 确定位于夏洛特或 POLYGON 内的属性的 POINT。我甚至使用外部工具对其进行完整性检查。

每次 ST_CONTAINS 返回 0!无论我做什么,它始终是 0。
我尝试使用 ST_WITHIN 失败。然后我确保 SRID 是相同的。首先两者都设置为 4328 仍然没有,然后我将它们设置为 0,再次没有。我为多边形和点都添加了一个空间索引,但仍然没有。

这是我要与 POINT (35.086449 -80.741455) 匹配的 POINT。

为了完整性检查,我运行了这个查询:

select st_contains(
ST_GeomFromText('POLYGON (( 322 322, 322 513, 528 513, 528 322, 322 322 ))'),
ST_GeomFromText('POINT (418 411)'));

结果是 1,这是一场比赛!

我到底错过了什么?谢谢。

最佳答案

试试这个

    SELECT MBRContains(POLYGON (( 322 322, 322 513, 528 513, 528 322, 322 322 )),   
GeomFromText('Point(418 411)')) AS whatEver

为我工作

关于mysql - 在 MySQL 5.7 中查找点是否在多边形内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45524057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com