@@ -2,12 +2,15 @@ package geoscript.layer
22
33import geoscript.feature.Feature
44import geoscript.geom.Bounds
5+ import geoscript.geom.Point
56import geoscript.proj.Projection
67import org.geotools.image.test.ImageAssert
78import org.junit.Rule
89import org.junit.Test
910import org.junit.rules.TemporaryFolder
1011
12+ import javax.imageio.ImageIO
13+
1114import static junit.framework.Assert.*
1215
1316/**
@@ -224,6 +227,22 @@ class TileLayerTestCase {
224227 layer. close()
225228 }
226229
230+ @Test
231+ void boundsAroundPoint () {
232+ File file = new File (getClass(). getClassLoader(). getResource(" states.mbtiles" ). toURI())
233+ MBTiles layer = new MBTiles (file)
234+ TileCursor cursor = layer. tiles(Projection . transform(new Point (-100.81 ,46.81 )," EPSG:4326" ," EPSG:3857" ), 8 , 400 , 300 )
235+ assertEquals (8 , cursor. z)
236+ assertEquals (55 , cursor. minX)
237+ assertEquals (165 , cursor. minY)
238+ assertEquals (57 , cursor. maxX)
239+ assertEquals (166 , cursor. maxY)
240+ assertEquals (3 , cursor. width)
241+ assertEquals (2 , cursor. height)
242+ assertEquals (6 , cursor. size)
243+ layer. close()
244+ }
245+
227246 @Test
228247 void getRaster () {
229248 File file = new File (getClass(). getClassLoader(). getResource(" states.mbtiles" ). toURI())
@@ -256,6 +275,22 @@ class TileLayerTestCase {
256275 layer. close()
257276 }
258277
278+ @Test
279+ void getRasterAroundPoint () {
280+ File file = new File (getClass(). getClassLoader(). getResource(" states.mbtiles" ). toURI())
281+ MBTiles layer = new MBTiles (file)
282+ Point point = Projection . transform(new Point (-100.81 ,46.81 )," EPSG:4326" ," EPSG:3857" )
283+ Raster raster = layer. getRaster(point, 4 , 300 , 200 )
284+ assertNotNull raster
285+ ImageAssert . assertEquals (new File (getClass(). getClassLoader(). getResource(" geoscript/layer/tilelayer_raster_point.png" ). toURI()), raster. image, 100 )
286+ File out = folder. newFile(" raster.png" )
287+ WorldImage format = new WorldImage (out)
288+ format. write(raster)
289+ assertTrue out. exists()
290+ assertTrue out. length() > 0
291+ layer. close()
292+ }
293+
259294 @Test
260295 void getLayer () {
261296 File file = new File (getClass(). getClassLoader(). getResource(" states.mbtiles" ). toURI())
0 commit comments