假设我有一些(lng,lat)坐标。我还有一个很大的范围列表,
[{northeast:{lng,lat},西南:{lng,lat}} ...]
如何最有效地确定(lng,lat)点进入哪个桶?
另外,从设计角度来看。对于某些数据库(例如mysql,monodb)或像memcached,redis这样的数据库,“范围列表”会更有意义吗?
谢谢。
答案 0 :(得分:1)
您需要细分范围列表。你可以看一个四核。它类似于四叉树。它使用莫顿曲线。您可以非常快速地计算范围和点的四元组。但你也可以尝试一个矩形树。您也可以使用intervall树。
答案 1 :(得分:1)
SQL数据库可能是一个很好的答案。如果您想象一个像(bucketId, latNe, longNe, latSw, longSw)
这样的表,并且在所有纬度/长列上都有索引,那么您可以通过使用所需的纬度/经度坐标准备和执行SELECT bucketId FROM bucketTable WHERE latNe > ? AND longNe < ? AND latSe < ? AND longSe > ?
之类的查询来非常有效地获得答案。
答案 2 :(得分:0)