<div dir="ltr"><div dir="ltr"><div dir="ltr">Hello,<div dir="auto"><br></div><div dir="auto">I have a geonode deployment based on <a href="https://github.com/geosolutions-it/geonode-generic" target="_blank">https://github.com/geosolutions-it/geonode-generic<br></a></div><div>This is running on my local machine.</div><div><br></div><div dir="auto">I want to add additional basemaps - according to geonode documentation it is recommended that one edits settings_local.py</div><div dir="auto"><br></div><div dir="auto">Is this the correct approach in this instance?</div><div dir="auto"><br></div><div dir="auto">Since
 I am using containers is it recommended to use docker volume in order 
to persist changes without having to create own image? (This is because on restart the changes to settings_local.py)</div><div dir="auto"><br></div><div>My <a href="http://settings.local.py">settings.local.py</a> looks like this (is it configured properly? These are not reflecting in my setup even after restarting the services. Any ideas what could be wrong?<br></div><div><br></div><div># -*- coding: utf-8 -*-<br>#########################################################################<br>#<br># Copyright (C) 2018 OSGeo<br>#<br># This program is free software: you can redistribute it and/or modify<br># it under the terms of the GNU General Public License as published by<br># the Free Software Foundation, either version 3 of the License, or<br># (at your option) any later version.<br>#<br># This program is distributed in the hope that it will be useful,<br># but WITHOUT ANY WARRANTY; without even the implied warranty of<br># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br># GNU General Public License for more details.<br>#<br># You should have received a copy of the GNU General Public License<br># along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.<br>#<br>#########################################################################<br><br>#import ast<br>#import os<br>#from urlparse import urlparse, urlunparse<br>from geonode.settings import *<br><br># default map projection<br># Note: If set to EPSG:4326, then only EPSG:4326 basemaps will work.<br>DEFAULT_MAP_CRS = "EPSG:3857"<br><br>DEFAULT_LAYER_FORMAT = "image/png"<br><br># Where should newly created maps be focused?<br>DEFAULT_MAP_CENTER = (0,0)<br><br># How tightly zoomed should newly created maps be?<br># 0 = entire world;<br># maximum zoom is between 12 and 15 (for Google Maps, coverage varies by area)<br>DEFAULT_MAP_ZOOM = 11<br><br>ALT_OSM_BASEMAPS = os.environ.get('ALT_OSM_BASEMAPS', False)<br>CARTODB_BASEMAPS = os.environ.get('CARTODB_BASEMAPS', False)<br>STAMEN_BASEMAPS = os.environ.get('STAMEN_BASEMAPS', False)<br>THUNDERFOREST_BASEMAPS = os.environ.get('THUNDERFOREST_BASEMAPS', False)<br>MAPBOX_ACCESS_TOKEN = os.environ.get('MAPBOX_ACCESS_TOKEN', '')<br>BING_API_KEY = os.environ.get('xjxjjxjxjxjjxjxjxjjxjxjxjxjxjxjxjxj_', None)<br>GOOGLE_API_KEY = os.environ.get('sisosopspsppspspsppsss', None)<br><br>MAP_BASELAYERS = [{<br>    "source": {"ptype": "gxp_olsource"},<br>    "type": "OpenLayers.Layer",<br>    "args": ["No background"],<br>    "name": "background",<br>    "visibility": False,<br>    "fixed": True,<br>    "group":"background"<br>#}, {<br>#    "source": {"ptype": "gxp_olsource"},<br>#    "type": "<a href="http://OpenLayers.Layer.XYZ">OpenLayers.Layer.XYZ</a>",<br>#    "title": "UNESCO",<br>#    "args": ["UNESCO", "<a href="http://en.unesco.org/tiles/${z}/${x}/${y}.png">http://en.unesco.org/tiles/${z}/${x}/${y}.png</a>"],<br>#    "wrapDateLine": True,<br>#    "name": "background",<br>#    "attribution": "&copy; UNESCO",<br>#    "visibility": False,<br>#    "fixed": True,<br>#    "group":"background"<br>#}, {<br>#    "source": {"ptype": "gxp_olsource"},<br>#    "type": "<a href="http://OpenLayers.Layer.XYZ">OpenLayers.Layer.XYZ</a>",<br>#    "title": "UNESCO GEODATA",<br>#    "args": ["UNESCO GEODATA", "<a href="http://en.unesco.org/tiles/geodata/${z}/${x}/${y}.png">http://en.unesco.org/tiles/geodata/${z}/${x}/${y}.png</a>"],<br>#    "name": "background",<br>#    "attribution": "&copy; UNESCO",<br>#    "visibility": False,<br>#    "wrapDateLine": True,<br>#    "fixed": True,<br>#    "group":"background"<br>#}, {<br>#    "source": {"ptype": "gxp_olsource"},<br>#    "type": "<a href="http://OpenLayers.Layer.XYZ">OpenLayers.Layer.XYZ</a>",<br>#    "title": "Humanitarian OpenStreetMap",<br>#    "args": ["Humanitarian OpenStreetMap", "<a href="http://a.tile.openstreetmap.fr/hot/${z}/${x}/${y}.png">http://a.tile.openstreetmap.fr/hot/${z}/${x}/${y}.png</a>"],<br>#    "name": "background",<br>#    "attribution": "&copy; <a href='<a href="http://www.openstreetmap.org/copyright">http://www.openstreetmap.org/copyright</a>'>OpenStreetMap</a>, Tiles courtesy of <a href='<a href="http://hot.openstreetmap.org/">http://hot.openstreetmap.org/</a>' target='_blank'>Humanitarian OpenStreetMap Team</a>",<br>#    "visibility": False,<br>#    "wrapDateLine": True,<br>#    "fixed": True,<br>#    "group":"background"<br># }, {<br>#     "source": {"ptype": "gxp_olsource"},<br>#     "type": "<a href="http://OpenLayers.Layer.XYZ">OpenLayers.Layer.XYZ</a>",<br>#     "title": "MapBox Satellite Streets",<br>#     "args": ["MapBox Satellite Streets", "<a href="http://api.mapbox.com/styles/v1/mapbox/satellite-streets-v9/tiles/${z}/${x}/${y}?access_token=">http://api.mapbox.com/styles/v1/mapbox/satellite-streets-v9/tiles/${z}/${x}/${y}?access_token=</a>"+MAPBOX_ACCESS_TOKEN],<br>#     "name": "background",<br>#     "attribution": "&copy; <a href='<a href="https://www.mapbox.com/about/maps/">https://www.mapbox.com/about/maps/</a>'>Mapbox</a> &copy; <a href='<a href="http://www.openstreetmap.org/copyright">http://www.openstreetmap.org/copyright</a>'>OpenStreetMap</a> <a href='<a href="https://www.mapbox.com/feedback/">https://www.mapbox.com/feedback/</a>' target='_blank'>Improve this map</a>",<br>#     "visibility": False,<br>#     "wrapDateLine": True,<br>#     "fixed": True,<br>#     "group":"background"<br># }, {<br>#     "source": {"ptype": "gxp_olsource"},<br>#     "type": "<a href="http://OpenLayers.Layer.XYZ">OpenLayers.Layer.XYZ</a>",<br>#     "title": "MapBox Streets",<br>#     "args": ["MapBox Streets", "<a href="http://api.mapbox.com/styles/v1/mapbox/streets-v9/tiles/${z}/${x}/${y}?access_token=">http://api.mapbox.com/styles/v1/mapbox/streets-v9/tiles/${z}/${x}/${y}?access_token=</a>"+MAPBOX_ACCESS_TOKEN],<br>#     "name": "background",<br>#     "attribution": "&copy; <a href='<a href="https://www.mapbox.com/about/maps/">https://www.mapbox.com/about/maps/</a>'>Mapbox</a> &copy; <a href='<a href="http://www.openstreetmap.org/copyright">http://www.openstreetmap.org/copyright</a>'>OpenStreetMap</a> <a href='<a href="https://www.mapbox.com/feedback/">https://www.mapbox.com/feedback/</a>' target='_blank'>Improve this map</a>",<br>#     "visibility": False,<br>#     "wrapDateLine": True,<br>#     "fixed": True,<br>#     "group":"background"<br>}, {<br>    "source": {"ptype": "gxp_osmsource"},<br>    "type": "OpenLayers.Layer.OSM",<br>    "title": "OpenStreetMap",<br>    "name": "mapnik",<br>    "attribution": "&copy; <a href='<a href="http://osm.org/copyright">http://osm.org/copyright</a>'>OpenStreetMap</a> contributors",<br>    "visibility": True,<br>    "wrapDateLine": True,<br>    "fixed": True,<br>    "group": "background"<br>}, {<br>    "source": {"ptype": "gxp_olsource"},<br>    "type": "<a href="http://OpenLayers.Layer.XYZ">OpenLayers.Layer.XYZ</a>",<br>    "title": "CD:NGI AERIAL",<br>    "args": ["CD:NGI AERIAL", "<a href="http://a.aerial.openstreetmap.org.za/ngi-aerial/${z}/${x}/${y}.jpg">http://a.aerial.openstreetmap.org.za/ngi-aerial/${z}/${x}/${y}.jpg</a>"],<br>    "wrapDateLine": True,<br>    "name": "CD:NGI AERIAL",<br>    "attribution": "&copy; CD:NGI AERIAL",<br>    "visibility": False,<br>    "fixed": True,<br>    "group":"background"<br>#}, {<br>#   "source": {<br>#             "ptype":"gxp_bingsource",<br>#             "apiKey":"xjxjjxjxjxjjxjxjxjjxjxjxjxjxjxjxjxj_"<br>#             },<br>#   "group":"background",<br>#   "name":"Aerial",<br>#   "title":"Bing Satellite Imagery",<br>#   "visibility": False,<br>#   "fixed":True<br>#}, {<br>#    "source": {"ptype":"gxp_googlesource", otherParams": "sensor=false&key={0}".format(GOOGLE_API_KEY)},<br>#    "title": "GOOGLE SATELLITE"<br>#    "name": "SATELLITE",<br>#    "visibility": False,<br>#    "fixed": True,<br>#    "group":"background"<br>}]<br><br>if 'geonode.geoserver' in INSTALLED_APPS:<br>    LOCAL_GEOSERVER = {<br>        "source": {<br>            "ptype": "gxp_wmscsource",<br>            "url": OGC_SERVER['default']['PUBLIC_LOCATION'] + "wms",<br>            "restUrl": "/gs/rest"<br>        }<br>    }<br>    baselayers = MAP_BASELAYERS<br>    MAP_BASELAYERS = [LOCAL_GEOSERVER]<br>    MAP_BASELAYERS.extend(baselayers)<br></div><div><br></div></div></div></div>