I want to show different weather data I have as binary arrays on a server using leaflet. But I do not want to generate tiles on the server. For each point in an a array I have the coordinates in another array. I also have the proj-string for the projection. Is it possible to retrieve the arrays from the server and dynamically generate the map for leaflet in the client? If so, how?
3 Answers
Leaflet appears to be focused on GeoJSON and tiles. You would need to put your raster data in GeoJSON format along with lon lat information. Depending on the size of your raster data pixel count, one large GeoJSON file with all the weather data could swamp a web browser's memory. You have to have some way of working with a bounding box of the data either in your Leaflet script or from a server service. You want to look for marker information in Leaflet. Also note that there is a GeoCVS Leaflet plugin. There's some links to get you started.
How to interact with leaflet marker layer from outside the map
Leaflet - How to find existing markers, and delete markers?
How to plot tweets by location in real time on to a map e.g. leaflet
Your best bet is to convert it to JSON.
I assume the binary array is a file type, so you have a X,Y,(Attribute) grid in some format and you want to display it on Leaflet.
If you have a way of reading the file, then work out how to output it just as points, so CSV, or GeoJSON as a first preference. If there are less than, say, 3000 points, that will render just fine. If it's more then you need to look at how to handle that.
GeoServer does WMS rendering very easily, but it does need some configuration and has an overhead of being a piece of software to manage. When you know what you're doing, GeoServer is very easy and fast to set up. You will probably still be stuck if your file format isn't supported by GDAL.
I'm not aware of any solutions that render on the client, but you may be interested in geotrellis, which could handle a lot of the required functionality on the server.