1
1
如果您使用正确的算法来组织数据,您将能够使用 spatial index 这样可以大大加快查询速度。 地理位置域的最佳实践是使用 geohash , quad-tree R-tree 查询点树(或者说大多数数据结构都是相似的,但这听起来并不重要)。在每种情况下,都可以创建一个空间索引,该索引使用单个线性列,其中每个值表示大小和形状不同的边界框。这样您就可以用数据库中的单个范围查询来回答大多数查询。空间索引可以用SQL实现( PostGIS MS SQL , MySQL 它们都有使用这些技术之一的空间数据类型和空间索引)或NoSQL(因其水平可伸缩性而流行;AppEngine有 geomodel ,SimpleGeo使用 Cassandra ,Foursquare使用 MongoDB ). 使用索引可能会因为不断移动的点而变得复杂,但我怀疑写操作,甚至是更新索引的稍微繁重的写操作,不会成为您的瓶颈。 |
2
0
即使你的车辆一直在行驶,我想他们有某种速度限制。你能做的就是创建某种离散坐标系,一个例子就是纬度/经度坐标的整数部分。然后将这些值放在单独的列中,在另一列中保留精确的位置。然后您应该能够索引整数列,因为车辆不会移动太多,因此它们会经常更改这些值。 在进行搜索时,首先要找出哪些“正方形”是有趣的,并使用索引列将查询限制到这些sqeare中的vechicle。然后你必须对每个广场内的所有车辆进行全面搜索。你必须做一个全面搜索的车辆数量现在应该只是所有车辆的一小部分。当然,这种策略的效率取决于车辆的分布情况。如果50%的车辆在某个城市,这是行不通的,但假设一个地方最大的车辆组为5-10%,则应提高性能。 |
Cornelis · 与前一行的相对距离,以熊猫/蟒蛇为单位 2 年前 |
Simon · GeoFire-使用半径将项目保存到特定位置 6 年前 |
Mattia · 融合位置问题-地理定位不起作用 6 年前 |
moriyasamun · 如何通过代码设置地理位置 6 年前 |