GIS

QGIS Add Custom Basemap

Posted by zhulinpinyu on September 10, 2015

🍺 Thanks http://cecilialiao.com/2014/10/30/adding-additional-stamen-map-tiles-to-qgis-2-4-tutorial/

I、 Install QGIS

visit Official Site download

II、 Install Openlayers Plugin

under Plugins menu, click Manage and Install Plugins Manage and Install Plugins p1 Manage and Install Plugins p2 Manage and Install Plugins p3

III、Custom Basemap

Manage and Install Plugins p3

Setp1 edit osm_stamen.py

open folder .qgis2 in your pc. Windows: C:\Users\(computer name)\.qgis2 if you used default installation; Mac OS X: ~/.qgis2 open .qgis2 edit python/plugins/openlayers_plugin/weblayers/osm_stamen.py in last line add.

class OlOSMAutoNavLayer(OlOSMStamenLayer):

  def __init__(self):
    OlOSMStamenLayer.__init__(self, name='AutoNav/OSM', html='autonav.html')

Step2 define new html for custom basemap

In python/plugins/openlayers_plugin/weblayers/html/ copy stamen_toner.html as autonav.html and edit following part

var apple = new OpenLayers.Layer.XYZ(
  "AutoNav/OSM map",
  "http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x=${x}&y=${y}&z=${z}",
  {
    sphericalMercator: true,
    wrapDateLine: true,
    // TODO: min zoom level 2
    numZoomLevels: 20,
    // attribution: "", // FIXME: attribution
    eventListeners: {
    "loadstart": layerLoadStart,
    "loadend": layerLoadEnd
    }
  }
);

🎈Reminder: ${x} ${y} ${z}  NOT  {x} {y} {z}

edit python/plugins/openlayers_plugin/openlayers_plugin.py

Find following

from weblayers.osm_stamen import OlOSMStamenTonerLayer, OlOSMStamenWatercolorLayer, OlOSMStamenTerrainLayer

Update to

from weblayers.osm_stamen import OlOSMStamenTonerLayer, OlOSMStamenWatercolorLayer, OlOSMStamenTerrainLayer, OlOSMAutoNavLayer

Find

self._olLayerTypeRegistry.register(OlOSMStamenTerrainLayer())

In next line add

self._olLayerTypeRegistry.register(OlOSMAutoNavLayer())

Step4 Check It works

Screen Shot 2015-09-10 at 10.04.23.png