Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
K-最近邻与MySql地理索引_Mysql_Nearest Neighbor_Gis - Fatal编程技术网

K-最近邻与MySql地理索引

K-最近邻与MySql地理索引,mysql,nearest-neighbor,gis,Mysql,Nearest Neighbor,Gis,我在mySql数据库中有一组带地理标记的图片。你可以认为我的图片表是: create table `Pictures` ( location Point NOT NULL, timeCreated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, SPATIAL INDEX(location) )ENGINE= MyISAM DEFAULT CHARSET=utf8; 我打算根据图片的位置执行K-最近邻算法。例如,如果K=10,则选择地理位置最

我在mySql数据库中有一组带地理标记的图片。你可以认为我的图片表是:

create table `Pictures` (

location Point NOT NULL, 
timeCreated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

SPATIAL INDEX(location)

)ENGINE= MyISAM DEFAULT CHARSET=utf8;
我打算根据图片的位置执行K-最近邻算法。例如,如果K=10,则选择地理位置最接近用户位置的10张图片


我感谢你的建议

看看下面的链接。我相信它解决了与单独使用MySQL查询相同的问题(如果您的问题是查找距离用户位置最近的10张图片)

我希望这能帮助您解决问题。

KNN不支持。
更恰当、更准确的回答是,截至目前。虽然PostGIS是PostgreSQL的免费空间扩展。

有什么限制吗?像是一组固定的图片还是添加和删除的图片?@Tim图片是由移动用户不断添加的。您已经专门询问了KNN。选择的答案——一个hversine公式与此无关。如果你想得到最接近的点,你就必须改进你的问题。不好意思,我不确定你在问什么,我认为这可能会让寻找KNN的人感到困惑。使用哈弗森公式意味着你必须计算所有点的距离。即使你只需要10个最近的点。@Jim Thio:我同意你需要考虑我发布的链接来计算所有点的距离。您能为这个问题提供一个更好的工作解决方案吗?我的sql似乎没有。我要搬到mongodb。您可以通过首先在小矩形中搜索来模拟它。如果mysql有这样的命令,对我来说就足够了。