gpt4 book ai didi

mysql - 一对多地理空间搜索

转载 作者:行者123 更新时间:2023-11-29 08:30:31 24 4
gpt4 key购买 nike

对于一个对象,我想关联多个纬度/经度对,这样当给定我的地理位置时,我可以得到离我最近的对象[即如果这些纬度/经度对中的任何一个满足最接近的条件]

虽然我知道如果一个对象只有一对纬度/经度如何进行地理空间搜索,但我陷入了这种多重地理空间搜索。

我想知道如何在 MySQL、Sphinx 或 MongoDB 中实现这一点?如果有其他技术可以完成这项工作,我也将很高兴了解这一点。非常感谢!

最佳答案

您可以使用 MongoDB 中的位置数组。

> db.array.insert({locs:[ [ 1, 2], [1.5, 1.8], [2, 1] ]})
Inserted 1 record(s) in 134ms
> db.array.ensureIndex({locs:'2d'})
Inserted 1 record(s) in 6ms
> db.array.insert({locs:[ [ 1, 2], [7.5, 1.8], [2, 5] ]})
Inserted 1 record(s) in 2ms
> db.array.find({locs:{$near:[1,2]}})
{ "_id" : ObjectId("51a193f11192cab2195f7a8a"), "locs" : [ [ 1, 2 ], [ 1.5, 1.8 ], [ 2, 1 ] ] }
{ "_id" : ObjectId("51a1940b1192cab2195f7a8c"), "locs" : [ [ 1, 2 ], [ 7.5, 1.8 ], [ 2, 5 ] ] }
{ "_id" : ObjectId("51a193f11192cab2195f7a8a"), "locs" : [ [ 1, 2 ], [ 1.5, 1.8 ], [ 2, 1 ] ] }
{ "_id" : ObjectId("51a193f11192cab2195f7a8a"), "locs" : [ [ 1, 2 ], [ 1.5, 1.8 ], [ 2, 1 ] ] }
{ "_id" : ObjectId("51a1940b1192cab2195f7a8c"), "locs" : [ [ 1, 2 ], [ 7.5, 1.8 ], [ 2, 5 ] ] }
{ "_id" : ObjectId("51a1940b1192cab2195f7a8c"), "locs" : [ [ 1, 2 ], [ 7.5, 1.8 ], [ 2, 5 ] ] }
Fetched 6 record(s) in 8ms

关于mysql - 一对多地理空间搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16749817/

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