MySQL纬度和经度表设置

MySQL纬度和经度表设置,第1张

MySQL纬度经度表设置

您应将这些点存储在数据类型的单列中,

Point
该列可以用索引建立
SPATIAL
索引(如果表类型为
MyISAM
):

CREATE SPATIAL INDEX sx_place_location ON place (location)SELECt  *FROM    mytableWHERe   MBRContains    (    LineString ( Point($x - $radius, $y - $radius), Point($x + $radius, $y + $radius) )    location    )        AND Distance(Point($x, $y), location) <= $radius

这将大大提高查询的速度,例如“在给定半径内查找所有对象”。

请注意,最好使用简单的

TM
公制坐标(东和北),而不是极坐标(纬度和经度)。对于小半径,它们足够精确,并且计算也大大简化了。如果您所有的点都在一个半身中并且远离极点,则可以使用单个中央子午线。

当然,您仍然可以使用极坐标,但是用于计算

MBR
和的公式将更加复杂。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5043976.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存