--- /dev/null
+package org.simantics.maps.elevation.server;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+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);
+ }
+}