package org.simantics.maps.elevation.server; import java.awt.geom.Rectangle2D; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Collection; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SingletonTiffTileInterface { private static final Logger LOGGER = LoggerFactory.getLogger(SingletonTiffTileInterface.class); private static final String TIFS_FOLDER = System.getProperty("tifsFolder"); private static SingletonTiffTileInterface instance = new SingletonTiffTileInterface(); private TiffTileInterface tileInterface; private SingletonTiffTileInterface() { // register spis Activator.registerSpis(); Path tilesFolder = Paths.get("tifsFolder"); if (TIFS_FOLDER != null) { Path potTilesFolder = Paths.get(TIFS_FOLDER); if (!Files.exists(potTilesFolder)) { // use default from working directory tilesFolder = potTilesFolder; } } try { Files.createDirectories(tilesFolder); } catch (IOException e) { LOGGER.error("Could not create directories {}", tilesFolder.toAbsolutePath(), e); } tileInterface = new TiffTileInterface(tilesFolder); } public static Number lookup(double x, double y) { return instance.tileInterface.lookup(x, y); } public static Collection getBoundingBoxes() { return instance.tileInterface.getBoundingBoxes(); } }