span8
span4
span8
span4
I have a directory structure containing source raster tiles (512x512 pixel png files) in TMS (XYZ) format at level 10.These have been provided to me by a third-party.
From these I'd like to generate levels 9 & 8 so additional layers can be shown in a leaflet app.I thought FME and the WebMapTiler would be the answer,but I'm struggling to get this working.
So far I have the following in workbench:
It's almost working,but I'm having the following issues:
Does anyone have any ideas or perhaps a different approach with FME to acheive this?
Regards
John
The WebMapTiler appears to be very slow,even without a fanout.So I decided to use the approach suggested by@takashi.I've now got this working in FME and am able to generate the next level of tiles (e.g.9) from the previous level (e.g.10) as follows:
This process takes a matter of minutes to run and the resulting tile levels have been tested in leaflet an are working nicely.
Many thanks to@takashifor the tips!
Thanks@takashi,that's very useful.I will look into whether we can just serve up the tiles at different resolutions in leaflet with the minNativeZoom and maxNativeZoom options.
Interestingly it not the georeferencing causing the performance issues,since the workbench runs in minutes if I georeference and then use RasterMosiacker to create a single image.It's definitely the WebMapTiler and I suspect something to do with the fanout the on the writer to get the correct directory structure.It's consuming a lot of memory,which suggests it holding the tiles in memory before writing.
Hi@john_gis4busine,I guess that the geo referencing process could be the bottle-neck in the performance.
If the tile index (x,y) for each source tile in zoom level 10 is known,you can calculate tile index for zoom level 9 or 8,move them appropriately without geo referencing,and then mosaic them grouping by new tile index.
For example,you can calculate tile index in zoom level 9 with these math expressions.Assume that (xN,yN) indicate the tile index in zoom level N.
x9 = @floor(x10 / 2)y9 = @floor(y10 / 2)
Next,offset the original 512x512 image with the Offsetter.
X Offset: 512 * (x10 % 2)Y Offset: -512 * (y10 % 2)
You can then mosaic them for each group of (x9,y9),and finally modify the resolution with the RasterResampler if necessary.
Note that a new tile image in zoom level 9 should consist of 4 original images in zoom level 10.You will have to add a process that supplies missing parts if a new image won't be filled with original images entirely.
By the way,you can also specify option parameters 'minNativeZoom','maxNativeZoom' and 'tileSize' to theLeaflet tile layerobject.Depending on the situation,it may not be essential to create a new tile dataset.
tileLayer = L.tileLayer(,{ minZoom : 8,maxZoom : 10,minNativeZoom : 10,maxNativeZoom : 10,tileSize : 512});
How to convert vector data into an MBTILES pyramid ?1 Answer
Creating LAS-file from pointcloud and orthophoto1 Answer
CAD to web map tiles1 Answer
Tiling space delimited XYZ Files1 Answer
From ECW to MBTILES2 Answers
© 2019 亚搏在线Safe Software Inc |Legal