Geomesa:如何获得最后一个地理点以及如何在 bbox 中获得独特的属性?
Geomesa: how to get last geopoint and how to get unique attributes within bbox?
我有带 geomesa 的 cassandra,我有下一个模式
~ bin/geomesa-cassandra_2.11-3.3.0/bin/geomesa-cassandra describe-schema -P localhost:9042 -u cassandra -p cassandra -k geomesa -c gsm_events -f SignalBuilder
INFO Describing attributes of feature 'SignalBuilder'
geo | Point (Spatio-temporally indexed)
time | Date (Spatio-temporally indexed) (Attribute indexed)
cam | String (Attribute indexed) (Attribute indexed)
imei | String (Attribute indexed)
dir | Double
alt | Double
vlc | Double
sl | Integer
ds | Integer
dir_y | Double
poi_azimuth_x | Double
poi_azimuth_y | Double
User data:
geomesa.attr.splits | 4
geomesa.feature.expiry | time(30 days)
geomesa.index.dtg | time
geomesa.indices | z3:7:3:geo:time,attr:8:3:time,attr:8:3:cam,attr:8:3:cam:time,attr:8:3:imei
geomesa.stats.enable | true
geomesa.table.partition | time
geomesa.z.splits | 4
geomesa.z3.interval | week
有没有办法在bbox中通过cam获取最后一个坐标?
以及如何在 bbox 中获取所有独特的摄像头(我使用字符串 UUID 作为 camId)?
现在我正在阅读 bbox 中的所有内容,然后以编程方式计算最后的坐标和独特的凸轮,
对于最后一个事件,我将 GeoEvents 放在 map 和 TimeComparator
我接下来要做的独特的摄像头:
Set<String> result = new HashSet<>(10);
for (Query query: qs) {
try (FeatureReader<SimpleFeatureType, SimpleFeature> reader =
dataStore.getFeatureReader(query, Transaction.AUTO_COMMIT)) {
while (reader.hasNext()) {
result.add((String)reader.next().getAttribute("cam"));
}
}
}
您可以使用 GeoMesa stats API 来完成其中的一些操作。您可以使用 enumeration
统计数据获取所有唯一值,并且可以使用 min/max
统计数据获取“最后”值。
统计信息 API 不会带回整个功能,因此如果您需要,您需要进行二次查找或简单地迭代结果。
但是,由于 Cassandra 没有任何服务器端处理,因此使用统计数据 API 不会比您当前的客户端处理提供更多优势。
我有带 geomesa 的 cassandra,我有下一个模式
~ bin/geomesa-cassandra_2.11-3.3.0/bin/geomesa-cassandra describe-schema -P localhost:9042 -u cassandra -p cassandra -k geomesa -c gsm_events -f SignalBuilder
INFO Describing attributes of feature 'SignalBuilder'
geo | Point (Spatio-temporally indexed)
time | Date (Spatio-temporally indexed) (Attribute indexed)
cam | String (Attribute indexed) (Attribute indexed)
imei | String (Attribute indexed)
dir | Double
alt | Double
vlc | Double
sl | Integer
ds | Integer
dir_y | Double
poi_azimuth_x | Double
poi_azimuth_y | Double
User data:
geomesa.attr.splits | 4
geomesa.feature.expiry | time(30 days)
geomesa.index.dtg | time
geomesa.indices | z3:7:3:geo:time,attr:8:3:time,attr:8:3:cam,attr:8:3:cam:time,attr:8:3:imei
geomesa.stats.enable | true
geomesa.table.partition | time
geomesa.z.splits | 4
geomesa.z3.interval | week
有没有办法在bbox中通过cam获取最后一个坐标? 以及如何在 bbox 中获取所有独特的摄像头(我使用字符串 UUID 作为 camId)?
现在我正在阅读 bbox 中的所有内容,然后以编程方式计算最后的坐标和独特的凸轮,
对于最后一个事件,我将 GeoEvents 放在 map
我接下来要做的独特的摄像头:
Set<String> result = new HashSet<>(10);
for (Query query: qs) {
try (FeatureReader<SimpleFeatureType, SimpleFeature> reader =
dataStore.getFeatureReader(query, Transaction.AUTO_COMMIT)) {
while (reader.hasNext()) {
result.add((String)reader.next().getAttribute("cam"));
}
}
}
您可以使用 GeoMesa stats API 来完成其中的一些操作。您可以使用 enumeration
统计数据获取所有唯一值,并且可以使用 min/max
统计数据获取“最后”值。
统计信息 API 不会带回整个功能,因此如果您需要,您需要进行二次查找或简单地迭代结果。
但是,由于 Cassandra 没有任何服务器端处理,因此使用统计数据 API 不会比您当前的客户端处理提供更多优势。