gpt4 book ai didi

Mysql在多边形中找到相交的lat lng点

转载 作者:行者123 更新时间:2023-11-29 16:16:53 24 4
gpt4 key购买 nike

我正在寻找一种解决方案,用于查找 LAT、LNG 点是否包含在我的 MySQL 表中的任何多边形内。

出于某种超出我的 SQL 知识范围的原因,我使用 ST_Intersects 的查询返回“未找到函数”。所以我已经尝试过它的位置:

SELECT `area_title` FROM `service_areas` WHERE MBRIntersects(`area_poly`, GEOMFROMTEXT('POINT(40.775032, -73.970778)'));

我的测试表相当简单,存储了一个
1. area_poly GEOMETRY 存储 POLYGON((-71.740723 41.360319,-71.685791 42.106374,-71.71875 42.407235,-71.905518 42.771211,-72.070312 4 3.036776,-72.432861 43.157109,-72.718506 43.397065,-73.190918 43.55651, -73.619385 43.580391,-74.32251 43.572432,-75.201416 43.277205,-75.717773 43.004647,-75.926514 42.795401,-76.135254 42.5287 96,-76.256103 42.138968,-76.289062 41.869561,-76.234131 41.442726,-76.190185 40.955011,-75.992432 40.472024,-75.849609 40.1 53687,-75.629883 39.783213,-75.311279 39.529467,-74.94873 39.368279,-74.520264 39.257778,-74.256592 39.478606,-71.5979 40.971604,-71.74072 3 41.360319))
还有
2. area_title VARCHAR(20) 存储服务区1

我正在尝试将 Point 作为 POINT(40.775032, -73.970778) 传递,如上所示。

预期结果是返回该点位于其多边形内的任何area_title;但是,我的查询返回 0 Rows

我知道 Slack 和网络上有大量的问题/答案,但我在尝试大多数方法时都没有找到解决方案。由于我缺乏 SQL 知识,我不确定我是否正确存储了 Poly,或者没有使用正确的函数来查找它。

任何帮助,即使是指向正确的方向,我们都会表示赞赏。

最佳答案

为遇到相同问题的任何人提供一个简单的解决方案:

SELECT ea.name, ea.area_poly from service_areas as ea WHERE contains(ea.area_poly, GeomFromText(AsText(point(@lat, @lng)), 4326))

我的多边形 ea.area_poly 保存为 Polygon((lat1 lng1,lat2 lng2, etc..)) 作为 geometry 类型在 SQL 中。

关于Mysql在多边形中找到相交的lat lng点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54713305/

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