MySQL Spatial Extensions:获取特定区域内的记录

时间:2011-03-21 20:31:21

标签: mysql gis

我想为项目使用MySQL spartial扩展。它是一个javascript查看器将发送可视区域的边缘,以便最合适的,东风和北方和sothern点作为适当的cordiated(纬度和逻辑)。我用来做距离计算和距离的例子。但是我只想要在用户的可视区域中删除可能是点的记录。用mysql spartial扩展说如果我有:

name:varchar 位置:点 长:双 lat:double

(long和lat用于绘制点)

鉴于小样本表,我如何在可视区域中拉出点

下面的链接显示了如何在postgresql中完成它。但是需要它用于mysql。

2 个答案:

答案 0 :(得分:1)

您最有可能想要自己计算空间索引。空间索引只是一个空间填充曲线,可以将2D问题减少到一维问题,从而使其更容易理解。您最有可能从sfc或quadtree中选择嵌套字符串键,而不是选择空间索引。从左到右读取嵌套键,因此对类似键或lat / lng对的查询只是与每个操作符可能的字符串比较。我在phpclasses.org(hilbert-curve)的php中完成了一个sfc实现。很可能你想下载它!或者你很可能想要谷歌搜索尼克的博客空间索引希尔伯特曲线和四叉树。

答案 1 :(得分:0)

您想使用'geometry'mysql扩展名。 如果您的位置是“几何”类型,则可以执行此类查询

SELECT *, AsWKT(location) as geomWKT
FROM myTable
WHERE Intersects(location,GeomFromText('POINT(1.9845 49.8543)'))

有关格式here

的一些示例