Use GeoNode client in your django projects
Project description
# geonode-client [](https://travis-ci.org/GeoNode/geonode-mapstore-client) [](https://codeclimate.com/github/GeoNode/geonode-viewer) [](https://codeclimate.com/github/GeoNode/geonode-mapstore-client/coverage)
MapStore - React map viewer for GeoNode
## Installation
Install `node` and `npm`. We would encourage you to use [nvm](https://github.com/creationix/nvm) a version manager for node.
You need `node > 5`
Run `npm install` to install all dependencies.
## Development Server
Run `npm start` to start the development server. Visit your browser at `http://localhost:8080` to see the result.
## Testing
During development run `npm run test:watch` to run tests on every file change.
Run `npm test` to run the full test suite with code coverage report.
## Building
- Building is done via webpack and the command is `npm build`
- The dist folder is where the minified versions of these files are stored.
## Deployment to GH-pages
Automated deployment via travis is enabled for the master branch.
If you want to deploy manually to gh-pages use `npm run deploy`
### Important
The deplyoment uses the `index-gh.html` please keep this file in sync with `index.html` and change the path once the repo changes it's name. The `.travis.yml` needs to be changed as well.
## Integrating into GeoNode/Django
- Execute `pip install django-mapstore-adapter --upgrade`
- Execute `pip install geonode-mapstore-client --upgrade`
### GeoNode settings update
Update your `GeoNode` > `settings.py` as follows:
```
# To enable the MapStore2 based Client enable those
if 'geonode_mapstore_client' not in INSTALLED_APPS:
INSTALLED_APPS += (
'mapstore2_adapter',
'geonode_mapstore_client',)
GEONODE_CLIENT_LAYER_PREVIEW_LIBRARY = 'mapstore' # DEPRECATED use HOOKSET instead
GEONODE_CLIENT_HOOKSET = "geonode_mapstore_client.hooksets.MapStoreHookSet"
MAPSTORE_DEBUG = False
def get_geonode_catalogue_service():
if PYCSW:
pycsw_config = PYCSW["CONFIGURATION"]
if pycsw_config:
pycsw_catalogue = {
("%s" % pycsw_config['metadata:main']['identification_title']): {
"url": CATALOGUE['default']['URL'],
"type": "csw",
"title": pycsw_config['metadata:main']['identification_title'],
"autoload": True
}
}
return pycsw_catalogue
return None
GEONODE_CATALOGUE_SERVICE = get_geonode_catalogue_service()
MAPSTORE_CATALOGUE_SERVICES = {
"Demo WMS Service": {
"url": "https://demo.geo-solutions.it/geoserver/wms",
"type": "wms",
"title": "Demo WMS Service",
"autoload": False
},
"Demo WMTS Service": {
"url": "https://demo.geo-solutions.it/geoserver/gwc/service/wmts",
"type": "wmts",
"title": "Demo WMTS Service",
"autoload": False
}
}
MAPSTORE_CATALOGUE_SELECTED_SERVICE = "Demo WMS Service"
if GEONODE_CATALOGUE_SERVICE:
MAPSTORE_CATALOGUE_SERVICES[GEONODE_CATALOGUE_SERVICE.keys()[0]] = GEONODE_CATALOGUE_SERVICE[GEONODE_CATALOGUE_SERVICE.keys()[0]]
MAPSTORE_CATALOGUE_SELECTED_SERVICE = GEONODE_CATALOGUE_SERVICE.keys()[0]
DEFAULT_MS2_BACKGROUNDS = [{
"type": "osm",
"title": "Open Street Map",
"name": "mapnik",
"source": "osm",
"group": "background",
"visibility": True
},
{
"group": "background",
"name": "osm",
"source": "mapquest",
"title": "MapQuest OSM",
"type": "mapquest",
"visibility": False
},
{
"type": "wms",
"url": "https://demo.geo-solutions.it/geoserver/wms",
"visibility": False,
"title": "Natural Earth",
"name": "sde:NE2_HR_LC_SR_W_DR",
"group": "background",
"format": "image/png"
},
{
"type": "wms",
"url": "https://demo.geo-solutions.it/geoserver/wms",
"visibility": False,
"title": "Hypsometric",
"name": "sde:HYP_HR_SR_OB_DR",
"group": "background",
"format": "image/png"
},
{
"type": "wms",
"url": "https://demo.geo-solutions.it/geoserver/wms",
"visibility": False,
"title": "Gray Earth",
"name": "sde:GRAY_HR_SR_OB_DR",
"group": "background",
"format": "image/png"
}
]
MAPSTORE_BASELAYERS = DEFAULT_MS2_BACKGROUNDS
if 'geonode.geoserver' in INSTALLED_APPS:
LOCAL_GEOSERVER = {
"type": "wms",
"url": OGC_SERVER['default']['PUBLIC_LOCATION'] + "wms",
"visibility": True,
"title": "Local GeoServer",
"group": "background",
"format": "image/png8",
"restUrl": "/gs/rest"
}
```
### Update migrations and static files
- Execute `DJANGO_SETTINGS_MODULE=<your_geonode.settings> python manage.py migrate`
- Execute `DJANGO_SETTINGS_MODULE=<your_geonode.settings> python manage.py collectstatic`
MapStore - React map viewer for GeoNode
## Installation
Install `node` and `npm`. We would encourage you to use [nvm](https://github.com/creationix/nvm) a version manager for node.
You need `node > 5`
Run `npm install` to install all dependencies.
## Development Server
Run `npm start` to start the development server. Visit your browser at `http://localhost:8080` to see the result.
## Testing
During development run `npm run test:watch` to run tests on every file change.
Run `npm test` to run the full test suite with code coverage report.
## Building
- Building is done via webpack and the command is `npm build`
- The dist folder is where the minified versions of these files are stored.
## Deployment to GH-pages
Automated deployment via travis is enabled for the master branch.
If you want to deploy manually to gh-pages use `npm run deploy`
### Important
The deplyoment uses the `index-gh.html` please keep this file in sync with `index.html` and change the path once the repo changes it's name. The `.travis.yml` needs to be changed as well.
## Integrating into GeoNode/Django
- Execute `pip install django-mapstore-adapter --upgrade`
- Execute `pip install geonode-mapstore-client --upgrade`
### GeoNode settings update
Update your `GeoNode` > `settings.py` as follows:
```
# To enable the MapStore2 based Client enable those
if 'geonode_mapstore_client' not in INSTALLED_APPS:
INSTALLED_APPS += (
'mapstore2_adapter',
'geonode_mapstore_client',)
GEONODE_CLIENT_LAYER_PREVIEW_LIBRARY = 'mapstore' # DEPRECATED use HOOKSET instead
GEONODE_CLIENT_HOOKSET = "geonode_mapstore_client.hooksets.MapStoreHookSet"
MAPSTORE_DEBUG = False
def get_geonode_catalogue_service():
if PYCSW:
pycsw_config = PYCSW["CONFIGURATION"]
if pycsw_config:
pycsw_catalogue = {
("%s" % pycsw_config['metadata:main']['identification_title']): {
"url": CATALOGUE['default']['URL'],
"type": "csw",
"title": pycsw_config['metadata:main']['identification_title'],
"autoload": True
}
}
return pycsw_catalogue
return None
GEONODE_CATALOGUE_SERVICE = get_geonode_catalogue_service()
MAPSTORE_CATALOGUE_SERVICES = {
"Demo WMS Service": {
"url": "https://demo.geo-solutions.it/geoserver/wms",
"type": "wms",
"title": "Demo WMS Service",
"autoload": False
},
"Demo WMTS Service": {
"url": "https://demo.geo-solutions.it/geoserver/gwc/service/wmts",
"type": "wmts",
"title": "Demo WMTS Service",
"autoload": False
}
}
MAPSTORE_CATALOGUE_SELECTED_SERVICE = "Demo WMS Service"
if GEONODE_CATALOGUE_SERVICE:
MAPSTORE_CATALOGUE_SERVICES[GEONODE_CATALOGUE_SERVICE.keys()[0]] = GEONODE_CATALOGUE_SERVICE[GEONODE_CATALOGUE_SERVICE.keys()[0]]
MAPSTORE_CATALOGUE_SELECTED_SERVICE = GEONODE_CATALOGUE_SERVICE.keys()[0]
DEFAULT_MS2_BACKGROUNDS = [{
"type": "osm",
"title": "Open Street Map",
"name": "mapnik",
"source": "osm",
"group": "background",
"visibility": True
},
{
"group": "background",
"name": "osm",
"source": "mapquest",
"title": "MapQuest OSM",
"type": "mapquest",
"visibility": False
},
{
"type": "wms",
"url": "https://demo.geo-solutions.it/geoserver/wms",
"visibility": False,
"title": "Natural Earth",
"name": "sde:NE2_HR_LC_SR_W_DR",
"group": "background",
"format": "image/png"
},
{
"type": "wms",
"url": "https://demo.geo-solutions.it/geoserver/wms",
"visibility": False,
"title": "Hypsometric",
"name": "sde:HYP_HR_SR_OB_DR",
"group": "background",
"format": "image/png"
},
{
"type": "wms",
"url": "https://demo.geo-solutions.it/geoserver/wms",
"visibility": False,
"title": "Gray Earth",
"name": "sde:GRAY_HR_SR_OB_DR",
"group": "background",
"format": "image/png"
}
]
MAPSTORE_BASELAYERS = DEFAULT_MS2_BACKGROUNDS
if 'geonode.geoserver' in INSTALLED_APPS:
LOCAL_GEOSERVER = {
"type": "wms",
"url": OGC_SERVER['default']['PUBLIC_LOCATION'] + "wms",
"visibility": True,
"title": "Local GeoServer",
"group": "background",
"format": "image/png8",
"restUrl": "/gs/rest"
}
```
### Update migrations and static files
- Execute `DJANGO_SETTINGS_MODULE=<your_geonode.settings> python manage.py migrate`
- Execute `DJANGO_SETTINGS_MODULE=<your_geonode.settings> python manage.py collectstatic`