阿奇在努力。 2023-03-05 17:43 采纳率: 15.4%
浏览 63
已结题

通过mysql字段值查询geometry查询范围

如果在mysql表当中使用的geometry格式的字段是分开的,不是直接写的geometry字段,怎么可以把相应的数据查询出来呢?求解答,急

img

img


如何像这样sql语句进行适配呢?或者有更好地方法

img

  • 写回答

5条回答 默认 最新

  • 「已注销」 2023-03-05 18:01
    关注

    “Devil组”引证GPT后的撰写:

    • 如果在 MySQL 表中使用的是 geometry 格式的字段,但是这些字段是分开存储的,例如分别存储经度和纬度,可以使用 MySQL 的空间函数 ST_Point() 来将这些字段组合成一个 geometry 类型的字段,然后进行查询。

    下面是一个示例查询,假设有一个表格叫做 locations,其中包含 latitude 和 longitude 字段:

    SELECT ST_AsText(ST_Point(latitude, longitude)) AS location FROM locations;
    
    
    

    在这个查询中,我们使用 ST_Point() 函数将 latitude 和 longitude 字段组合成一个点,并使用 ST_AsText() 函数将其转换为文本格式。

    • 如果要查询所有在指定区域内的位置,可以使用 MySQL 的空间函数 ST_Contains() 或 ST_Intersects()。

    例如,假设要查询位于矩形范围内的所有位置:

    SELECT * FROM locations WHERE ST_Contains(ST_MakeEnvelope(min_longitude, min_latitude, max_longitude, max_latitude, 4326), ST_Point(latitude, longitude));
    
    
    

    在这个查询中,我们使用 ST_MakeEnvelope() 函数创建一个矩形范围,并使用 ST_Contains() 函数来判断每个位置是否在这个范围内。请注意,4326 是一个 EPSG 代码,表示 WGS84 坐标系。

    需要注意的是,MySQL 必须启用空间扩展功能,这可以通过安装和启用适当的插件或扩展来实现。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月10日
  • 修改了问题 3月5日
  • 创建了问题 3月5日

悬赏问题

  • ¥15 Windows X86 远线程注入问题解惑
  • ¥15 Vs2022安装时黑框闪退无反应
  • ¥15 嵌入式设备网口down后再up时不能link?
  • ¥15 关于区块链和边缘计算
  • ¥15 做一个简单项目,用Python分析共享单车的数据
  • ¥20 在使用CESM2.2.0模型进行case.submit过程中出现如下错误(关键词-Map)
  • ¥15 有办法改变通过wifi进入的网站的设置吗
  • ¥15 label_studio
  • ¥15 请教如何phython发邮件
  • ¥15 linux系统安装问题