gpt4 book ai didi

mysql - 使用 MySQL 空间扩展选择范围内的项目?

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

我对 MySQL 空间扩展完全陌生,所以请原谅我对这个话题的无知。

场景:

1) 我通过纬度和经度收集用户的位置。我将该位置存储在 MySQL 表中。

2) 然后我显示该用户范围内的任何其他用户。范围会很小 - 比如说 1000 英尺。

问题:存储位置点的最佳做法是什么?查询和选择离用户最近的点的最佳做法是什么?

最佳答案

  • 使用POINT空间数据类型来存储坐标。

    结构是这样的:

     CREATE TABLE gps name varchar(0), `location` point NOT NULL;

    请注意“位置”列的类型。

  • 之后,您必须为“位置”列定义空间索引。

    CREATE SPATIAL INDEX sp_index ON gps(`location`);
  • 插入数据(纬度和经度)

    INSERT INTO gps (name, location) VALUES ( 'India' , GeomFromText( ' POINT(31.5 42.2) ' ) ) 

    GeomFromText 函数接受一个字符串并返回一个几何对象。这里31.5和42.2分别是纬度和经度。请注意,它们之间没有NO 逗号。它们由空格分隔。

  • 读取数据

    SELECT name, AsText(location) FROM gps;

    AsText 函数将几何图形的内部表示形式转换为字符串格式。

    注意:您必须使用 MySQL 5.0 或以上的空间扩展支持。还可以使用“MyIsam”数据库引擎来加快查询速度。

关于mysql - 使用 MySQL 空间扩展选择范围内的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15034024/

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