I created GEOS
, the Google Earth Overlay Server for exactly this purpose.
That's a python server running locally and creating KML overlays for tiled maps.
You can specify custom mapsources in XML-format:
<customMapSource>
<name>Example Map</name> <!-- Name of the map as displayed in Google Earth -->
<minZoom>5</minZoom> <!-- minimal zoom level supported by the web map -->
<maxZoom>15</maxZoom> <!-- maximal zoom level supported by the web map -->
<!-- url: tells GEOS where to find the tiles.
Tile URLs contain three Parameters: zoom, x and y -->
<url>http://example.com/map?zoom={$z}&x={$x}&y={$y}</url>
</customMapSource>
You probably need to convert/render your image to an RGB color image before or during export from QGIS.
Google Earth can only import/display images that have 3 bands: red, green, blue. If your image file only contains one band, with binary data like your 1s and 0s, QGIS recognizes that and gives it a default styling (black & white). But Google Earth only expects 3-band images, and doesn't know what to do with a single band.
There's an easy way to fix this in QGIS. Make sure your raster layer has some styling set, even if it's just black & white. Right-click the layer, select "Save-as" and at the top of the window, look for "Output mode", and set it to "Rendered Image". Now set the rest of your options, including Format = GeoTiff, and export the TIF file again. That rendered image will be a bit bigger file, but it should show up correctly in Google Earth.
Best Answer
I suppose it depends on how you want to have it display. If you want to show more detail as you zoom in (kind of like the maps from the Rumsey Map Collection do on Google Earth-- I believe that Google calls it a SuperOverlay), I'd recommend using something like MapTiler (http://www.maptiler.org/), which uses GDAL to split your image into tiles of different sizes and then will create a kml file with those tiles.
If you just want a plain, barebones overlay, I think that MapTiler can do that also. Just set the minimum and maximum zoom level to 0, and you should be good to go!