54
54
import org .heigit .ohsome .oshdb .filter .FilterParser ;
55
55
import org .heigit .ohsome .oshdb .osm .OSMEntity ;
56
56
import org .heigit .ohsome .oshdb .osm .OSMType ;
57
+ import org .heigit .ohsome .oshdb .util .OSHDBTagKey ;
57
58
import org .heigit .ohsome .oshdb .util .celliterator .ContributionType ;
58
59
import org .heigit .ohsome .oshdb .util .function .SerializableFunction ;
59
60
import org .heigit .ohsome .oshdb .util .geometry .Geo ;
@@ -180,10 +181,10 @@ public static <P extends Geometry & Polygonal> Response aggregateGroupByBoundary
180
181
TagTranslator tt = DbConnData .tagTranslator ;
181
182
Integer [] valuesInt = new Integer [groupByValues .length ];
182
183
ArrayList <Pair <Integer , Integer >> zeroFill = new ArrayList <>();
183
- int keysInt = tt .getOSHDBTagKeyOf (groupByKey [0 ]).toInt ( );
184
+ int keysInt = tt .getOSHDBTagKeyOf (groupByKey [0 ]).map ( OSHDBTagKey :: toInt ). orElse (- 1 );
184
185
if (groupByValues .length != 0 ) {
185
186
for (int j = 0 ; j < groupByValues .length ; j ++) {
186
- valuesInt [j ] = tt .getOSHDBTagOf (groupByKey [0 ], groupByValues [j ]).getValue ( );
187
+ valuesInt [j ] = tt .getOSHDBTagOf (groupByKey [0 ], groupByValues [j ]).map ( OSHDBTag :: getValue ). orElse (- j );
187
188
zeroFill .add (new ImmutablePair <>(keysInt , valuesInt [j ]));
188
189
}
189
190
}
@@ -217,7 +218,7 @@ public static <P extends Geometry & Polygonal> Response aggregateGroupByBoundary
217
218
String tagIdentifier ;
218
219
// check for non-remainder objects (which do have the defined key and value)
219
220
if (entry .getKey ().getSecondIndex ().getKey () != -1 && tagValue != -1 ) {
220
- tagIdentifier = tt .getOSMTagOf (keysInt , tagValue ).toString ();
221
+ tagIdentifier = tt .lookupTag (keysInt , tagValue ).toString ();
221
222
} else {
222
223
tagIdentifier = "remainder" ;
223
224
}
@@ -287,10 +288,10 @@ public static Response aggregateGroupByTag(RequestResource requestResource,
287
288
TagTranslator tt = DbConnData .tagTranslator ;
288
289
Integer [] valuesInt = new Integer [groupByValues .length ];
289
290
ArrayList <Pair <Integer , Integer >> zeroFill = new ArrayList <>();
290
- int keysInt = tt .getOSHDBTagKeyOf (groupByKey [0 ]).toInt ( );
291
+ int keysInt = tt .getOSHDBTagKeyOf (groupByKey [0 ]).map ( OSHDBTagKey :: toInt ). orElse (- 1 );
291
292
if (groupByValues .length != 0 ) {
292
293
for (int j = 0 ; j < groupByValues .length ; j ++) {
293
- valuesInt [j ] = tt .getOSHDBTagOf (groupByKey [0 ], groupByValues [j ]).getValue ( );
294
+ valuesInt [j ] = tt .getOSHDBTagOf (groupByKey [0 ], groupByValues [j ]).map ( OSHDBTag :: getValue ). orElse (- j );
294
295
zeroFill .add (new ImmutablePair <>(keysInt , valuesInt [j ]));
295
296
}
296
297
}
@@ -307,7 +308,7 @@ public static Response aggregateGroupByTag(RequestResource requestResource,
307
308
entry .getValue (), requestParameters .isDensity (), df , geom );
308
309
// check for non-remainder objects (which do have the defined key and value)
309
310
if (entry .getKey ().getKey () != -1 && entry .getKey ().getValue () != -1 ) {
310
- groupByName = tt .getOSMTagOf (keysInt , entry .getKey ().getValue ()).toString ();
311
+ groupByName = tt .lookupTag (keysInt , entry .getKey ().getValue ()).toString ();
311
312
} else {
312
313
groupByName = "remainder" ;
313
314
}
@@ -430,7 +431,7 @@ public static Response aggregateGroupByKey(RequestResource requestResource,
430
431
TagTranslator tt = DbConnData .tagTranslator ;
431
432
Integer [] keysInt = new Integer [groupByKeys .length ];
432
433
for (int i = 0 ; i < groupByKeys .length ; i ++) {
433
- keysInt [i ] = tt .getOSHDBTagKeyOf (groupByKeys [i ]).toInt ( );
434
+ keysInt [i ] = tt .getOSHDBTagKeyOf (groupByKeys [i ]).map ( OSHDBTagKey :: toInt ). orElse (- i );
434
435
}
435
436
MapAggregator <OSHDBCombinedIndex <OSHDBTimestamp , Integer >, OSMEntitySnapshot > preResult =
436
437
mapRed .flatMap (f -> {
@@ -460,7 +461,7 @@ public static Response aggregateGroupByKey(RequestResource requestResource,
460
461
entry .getValue (), requestParameters .isDensity (), df , null );
461
462
// check for non-remainder objects (which do have the defined key)
462
463
if (entry .getKey () != -1 ) {
463
- groupByName = tt .getOSMTagKeyOf (entry .getKey (). intValue ()). toString ();
464
+ groupByName = tt .lookupTag (entry .getKey (), 0 ). getKey ();
464
465
} else {
465
466
groupByName = "remainder" ;
466
467
}
@@ -530,17 +531,18 @@ public static Response aggregateBasicFiltersRatio(RequestResource requestResourc
530
531
Integer [] keysInt2 = new Integer [keys2 .length ];
531
532
Integer [] valuesInt2 = new Integer [values2 .length ];
532
533
for (int i = 0 ; i < requestParameters .getKeys ().length ; i ++) {
533
- keysInt1 [i ] = tt .getOSHDBTagKeyOf (requestParameters .getKeys ()[i ]).toInt ();
534
+ keysInt1 [i ] = tt .getOSHDBTagKeyOf (requestParameters .getKeys ()[i ]).map (OSHDBTagKey ::toInt )
535
+ .orElse (-i );
534
536
if (requestParameters .getValues () != null && i < requestParameters .getValues ().length ) {
535
537
valuesInt1 [i ] =
536
538
tt .getOSHDBTagOf (requestParameters .getKeys ()[i ], requestParameters .getValues ()[i ])
537
- .getValue ( );
539
+ .map ( OSHDBTag :: getValue ). orElse (- i );
538
540
}
539
541
}
540
542
for (int i = 0 ; i < keys2 .length ; i ++) {
541
- keysInt2 [i ] = tt .getOSHDBTagKeyOf (keys2 [i ]).toInt ( );
543
+ keysInt2 [i ] = tt .getOSHDBTagKeyOf (keys2 [i ]).map ( OSHDBTagKey :: toInt ). orElse (- i );
542
544
if (i < values2 .length ) {
543
- valuesInt2 [i ] = tt .getOSHDBTagOf (keys2 [i ], values2 [i ]).getValue ( );
545
+ valuesInt2 [i ] = tt .getOSHDBTagOf (keys2 [i ], values2 [i ]).map ( OSHDBTag :: getValue ). orElse (- i );
544
546
}
545
547
}
546
548
EnumSet <OSMType > osmTypes1 =
@@ -780,17 +782,18 @@ public static <P extends Geometry & Polygonal> Response aggregateBasicFiltersRat
780
782
Integer [] valuesInt2 = new Integer [values2 .length ];
781
783
TagTranslator tt = DbConnData .tagTranslator ;
782
784
for (int i = 0 ; i < requestParameters .getKeys ().length ; i ++) {
783
- keysInt1 [i ] = tt .getOSHDBTagKeyOf (requestParameters .getKeys ()[i ]).toInt ();
785
+ keysInt1 [i ] = tt .getOSHDBTagKeyOf (requestParameters .getKeys ()[i ]).map (OSHDBTagKey ::toInt )
786
+ .orElse (-i );
784
787
if (requestParameters .getValues () != null && i < requestParameters .getValues ().length ) {
785
788
valuesInt1 [i ] =
786
789
tt .getOSHDBTagOf (requestParameters .getKeys ()[i ], requestParameters .getValues ()[i ])
787
- .getValue ( );
790
+ .map ( OSHDBTag :: getValue ). orElse (- i );
788
791
}
789
792
}
790
793
for (int i = 0 ; i < keys2 .length ; i ++) {
791
- keysInt2 [i ] = tt .getOSHDBTagKeyOf (keys2 [i ]).toInt ( );
794
+ keysInt2 [i ] = tt .getOSHDBTagKeyOf (keys2 [i ]).map ( OSHDBTagKey :: toInt ). orElse (- i );
792
795
if (i < values2 .length ) {
793
- valuesInt2 [i ] = tt .getOSHDBTagOf (keys2 [i ], values2 [i ]).getValue ( );
796
+ valuesInt2 [i ] = tt .getOSHDBTagOf (keys2 [i ], values2 [i ]).map ( OSHDBTag :: getValue ). orElse (- i );
794
797
}
795
798
}
796
799
EnumSet <OSMType > osmTypes1 = (EnumSet <OSMType >) processingData .getOsmTypes ();
0 commit comments