X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.maps.elevation.server%2Fsrc%2Forg%2Fsimantics%2Fmaps%2Felevation%2Fserver%2FSingletonTiffTileInterface.java;fp=org.simantics.maps.elevation.server%2Fsrc%2Forg%2Fsimantics%2Fmaps%2Felevation%2Fserver%2FSingletonTiffTileInterface.java;h=3a3a0f6f9948396e9c9d73a7e87eedaed90c4556;hb=c6ddbec532645f52583c1ab9691cfb802724fca7;hp=0000000000000000000000000000000000000000;hpb=a1fb6a041444504a126b01ad1137e14a4994fa30;p=simantics%2Fdistrict.git diff --git a/org.simantics.maps.elevation.server/src/org/simantics/maps/elevation/server/SingletonTiffTileInterface.java b/org.simantics.maps.elevation.server/src/org/simantics/maps/elevation/server/SingletonTiffTileInterface.java new file mode 100644 index 00000000..3a3a0f6f --- /dev/null +++ b/org.simantics.maps.elevation.server/src/org/simantics/maps/elevation/server/SingletonTiffTileInterface.java @@ -0,0 +1,43 @@ +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); + } +}