Search in sources :

Example 1 with Tuple3

use of org.mapdb.Fun.Tuple3 in project traffic-engine by opentraffic.

the class StreetDataStore method delete.

@Override
public void delete(SpatialDataItem obj) {
    Tuple3 segmentId = ((StreetSegment) obj).getSegmentId();
    segmentIndex.remove(segmentId);
    super.delete(obj);
}
Also used : StreetSegment(io.opentraffic.engine.geom.StreetSegment) Tuple3(org.mapdb.Fun.Tuple3)

Example 2 with Tuple3

use of org.mapdb.Fun.Tuple3 in project traffic-engine by opentraffic.

the class StreetDataStore method delete.

@Override
public void delete(List<SpatialDataItem> objs) {
    List<SpatialDataItem> segments = new ArrayList<SpatialDataItem>();
    for (SpatialDataItem obj : objs) {
        Tuple3 segmentId = ((StreetSegment) obj).getSegmentId();
        if (!segmentIndex.containsKey(segmentId))
            continue;
        segments.add(obj);
        segmentIndex.remove(segmentId);
    }
    super.delete(segments);
}
Also used : StreetSegment(io.opentraffic.engine.geom.StreetSegment) Tuple3(org.mapdb.Fun.Tuple3) SpatialDataItem(io.opentraffic.engine.data.SpatialDataItem)

Example 3 with Tuple3

use of org.mapdb.Fun.Tuple3 in project traffic-engine by opentraffic.

the class StreetDataStore method save.

@Override
public void save(List<SpatialDataItem> objs) {
    List<SpatialDataItem> segments = new ArrayList<SpatialDataItem>();
    for (SpatialDataItem obj : objs) {
        Tuple3 segmentId = ((StreetSegment) obj).getSegmentId();
        if (segmentIndex.containsKey(segmentId))
            continue;
        segments.add(obj);
        segmentIndex.put(segmentId, obj.id);
    }
    super.save(segments);
}
Also used : StreetSegment(io.opentraffic.engine.geom.StreetSegment) Tuple3(org.mapdb.Fun.Tuple3) SpatialDataItem(io.opentraffic.engine.data.SpatialDataItem)

Example 4 with Tuple3

use of org.mapdb.Fun.Tuple3 in project traffic-engine by opentraffic.

the class StreetDataStore method save.

public void save(SpatialDataItem obj) {
    Tuple3 segmentId = ((StreetSegment) obj).getSegmentId();
    if (segmentIndex.containsKey(segmentId))
        return;
    segmentIndex.put(segmentId, obj.id);
    super.save(obj);
}
Also used : StreetSegment(io.opentraffic.engine.geom.StreetSegment) Tuple3(org.mapdb.Fun.Tuple3)

Example 5 with Tuple3

use of org.mapdb.Fun.Tuple3 in project traffic-engine by opentraffic.

the class SpatialDataStore method getIdsByEnvelope.

public List<Long> getIdsByEnvelope(Envelope env) {
    int y1 = getTileY(env.getMinY(), Z_INDEX);
    int x1 = getTileX(env.getMinX(), Z_INDEX);
    int y2 = getTileY(env.getMaxY(), Z_INDEX);
    int x2 = getTileX(env.getMaxX(), Z_INDEX);
    int minY;
    int maxY;
    int minX;
    int maxX;
    if (x1 < x2) {
        minX = x1;
        maxX = x2;
    } else {
        minX = x2;
        maxX = x1;
    }
    if (y1 < y2) {
        minY = y1;
        maxY = y2;
    } else {
        minY = y2;
        maxY = y1;
    }
    minX--;
    maxX++;
    minY--;
    maxY++;
    List<Long> ids = new ArrayList();
    for (int tileX = minX; tileX <= maxX; tileX++) {
        NavigableSet<Tuple3<Integer, Integer, Long>> xSubset = tileIndex.subSet(// inclusive lower bound, null tests lower than anything
        new Tuple3(tileX, minY, null), // inclusive lower bound, null tests lower than anything
        true, // inclusive upper bound, HI tests higher than anything
        new Tuple3(tileX, maxY, Fun.HI), // inclusive upper bound, HI tests higher than anything
        true);
        for (Tuple3<Integer, Integer, Long> item : xSubset) {
            ids.add(item.c);
        }
    }
    return ids;
}
Also used : Tuple3(org.mapdb.Fun.Tuple3)

Aggregations

Tuple3 (org.mapdb.Fun.Tuple3)5 StreetSegment (io.opentraffic.engine.geom.StreetSegment)4 SpatialDataItem (io.opentraffic.engine.data.SpatialDataItem)2