Ever since the release of Google Earth, spinning globe applications have become a useful and popular method of geographic exploration. QGIS has an experimental plugin called QGIS Globe, which is similar to Google Earth; however, it is extremely unstable. In this recipe, we'll display a layer in Google Earth.
You will need to use the QGIS Plugin Manager to install the MMQGIS plugin.
Make sure you have Google Earth installed from https://www.google.com/earth/.
You will also need the following dataset from a previous recipe. It is a zipped directory called ufo
which you should uncompress to your qgis_data
directory:
We will load our layer and set up the attribute we want to use for the Google Earth KML output as the descriptor. We'll use the MMQIGS plugin to output our layer to KML. Finally, we'll use a cross-platform technique to open the file, which will trigger it to open in Google Earth. To do this, we need to perform the following steps:
webbrowser
module to launch Google Earth:from mmqgis import mmqgis_library as mmqgis import webbrowser import os
pth = "/Users/joellawhead/qgis_data/continental-us" lyrName = "continental-us" lyr = QgsVectorLayer(pth, lyrName, "ogr")
output = "/Users/joellawhead/qgis_data/us.kml"
nameAttr = "FIPS_CNTRY" desc = ["CNTRY_NAME",] sep = "Paragraph"
mmqgis.mmqgis_kml_export(iface, lyrName, nameAttr, desc, sep, output, False)
webbrowser
module to open the KML file, which will default to opening in Google Earth. We need to add the file
protocol at the beginning of our output for the webbrowser
module to work:webbrowser.open("file://" + output)