问题:
我有数百万(10+)个标记,每个标记都有不同的字段:
1. lat
2. lng
3. area (double)
4. size (int)
5. tolerance (double)
6. lags (boolean)
7. channel (boolean)
... (more)
现在,我希望每个集群都有以下聚合数据:
1. number of markers
2. min area
3. max area
4. avg area
5. min size
6. max size
7. avg size
8. tolerance distribution (how many where of tolerance < X, other >=X < Y and >=Y <Z where X,Y,Z constants)
... (more)
集群是基于标记的 lat,lng(距离)和缩放级别(int)创建的。
非问题部分(**):
计算所有缩放级别的集群,而不考虑“全押”条件。这是通过创建一棵树来完成的,并且为用户获取集群是直截了当的。
现在解决问题:
用户可以根据标记字段进行查询,例如“向我显示其区域> K 且滞后=真的所有标记”。仅对于这个查询,就需要创建一个全新的集群树。如果他更改查询“向我显示其区域 > K.0001 和 lags=true 的所有标记”,则必须创建新树。我不想为每个用户的查询计算这样的树,也不想将它存储在内存中(不确定是否可能)。
问题:
What approach should be taken?
given the complexity of calculation X # of markers
(fields inside) X speed factor.
I was thinking that there's some sort of way to use the
"all-in" clusters calculation(**), as it gives me ALL the markers and clusters and from
there to manipulate in some elegant way.
将要:
- space-filling-curve (hilbert) can help? how?
- DB approach (what DBand why?)
- k-d tree ?
整个想法是预先处理大量数据和计算,以便用户可以操作它而无需在他的一侧或服务器端计算它(因此客户端集群不是解决方案,融合表也是如此)
代码示例非常受欢迎。