I have cassandra with geomesa, in there I have next schema
~ 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
Is there any way to get last coordinate by cam within bbox? And how to get all unique cams (I use String UUID for camId) within bbox?
Now I'm reading everithing within bbox, and then calculate programmatically the last coordinate and unique cams,
for last event I put GeoEvents in map<String Cam, Point point> with TimeComparator
for unique cam I do next:
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"));
}
}
}