gpt4 book ai didi

mysql - 判断一个点是否在区域内

转载 作者:搜寻专家 更新时间:2023-10-30 22:18:42 25 4
gpt4 key购买 nike

我有一个包含许多区域(例如建筑物或属性)的 kml 文件。形状可能很复杂(不仅仅是矩形,还可能是 n 边形,甚至是凸形),但在大多数情况下它们会很小(每边不超过一公里)。可能有数万个坐标和数百(也许数千)个区域。

我想知道一组坐标中的任何坐标是否在这些区域之一内,如果是,是什么坐标和什么区域。这可以通过一次一个区域查找每个区域内的所有点,或者通过一次一个点查找每个点是否位于区域内来完成。

我希望有某种数据库驱动的解决方案,但对任何解决方案都持开放态度。

该应用程序将在 Amazon EC2 实例上启动,因此与 RDS 兼容的东西会很好)

暂定方案是mysql中的ST_WITHIN或ST_CONTAINS或ST_INTERSECTS,但我不清楚它们之间的区别。

我还查看了 Google Fusion Tables,但找不到执行我想要的操作的 SQL 查询(并不意味着没有 - 我只是错过了)。

最佳答案

郑重声明,我最终使用了带有支持 mysql 数据库的 geodjango。

RegionContainer.objects.filter(region_area__contains=Point(longitude, latitude))

给出一个区域列表,其中包含具有给定纬度和经度坐标的点。 python/django 代码成为 sql 查询。

SELECT `locationapp_region_container`.`id`,
`locationapp_region_container`.`profile_id`,
AsText(`locationapp_region_container`.`region_area`)
FROM `locationapp_region_container`
WHERE MBRContains(`locationapp_region_container`.`region_area`,
GeomFromText(POINT (80.6123000000000047 -43.2349804300000002)))

因为后台数据库是MySQL,所以支持RDS。

关于mysql - 判断一个点是否在区域内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7467118/

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