-
Notifications
You must be signed in to change notification settings - Fork 2
GeoPortal Basics
The GeoPortal source code is stored in CReSIS/OPS-GEOPORTAL. The geoportal is built from the source code and then the compiled outputs are pushed into the CReSIS/OPS respository at /conf/geoportal/.
Building the geoportal is explained here.
Once the compiled outputs are pushed into the CReSIS/OPS repository, to update the live system:
- cd /vagrant/
- git pull
- sh conf/tools/updateGeoportal.sh
git clone https://github.com/CReSIS/OPS-GEOPORTAL.git [yourLocalDirectory]
The basic framework for the software came from OpenLayers.
It also uses the Sencha libraries which are an extension to javascript (these are needed when you compile the javascript).
These are the basic pieces (there is more but these are the key ones).
OPS-GEOPORTAL/
app/
controller/
model/
store/
view/
Application.js
Global.js
build/
ext/
geoext/
ol/
ol-custom/
opsBuildPortal.py
app/
this directory contains the actual source code of the application you are creating. Most of the development you do occurs in this directory.
app/controller/
this directory contains all of the controllers. Controllers contain the logic of the views. For example a view defines where a button is rendered and what it looks like and a controller defines what happens when the button gets clicked.
app/model
this directory contains all of the models. Models define the data structure of a store. A store is the actual place where data is contained and defines how/where the data comes from. What structure of data the store will contain is defined in the model.
app/store/
this directory contains all of the stores. Stores are where data is contained, accessed, manipulated, and saved throughout the application. Stores can use AJAX to get data, contain hard-coded fixed data, or use other means of retrieving data via the web.
app/view
this directory contains all of the views. Views deifne how the application is visually laid out. In some cases (for example the arctic/antarctic maptab views) the logic is contained in the view itself. Having logic in a view is not following MVC exactly but GeoExt + Ext makes this difficult to do sometimes.
app/Application.js
is the primary JS file that defines all of the pieces of the Application. Take a look at the file, it is self-explanatory. Make sure to add things here is you create new views/controllers/models/stores.
app/Global.js
is a custom file for the OPS-GeoPortal that contains the baseURL for all subsequent requests. Make sure this gets edited in the build (or before the build) to match the system url you are building for.
ext/
geoext/
ol/
are the library source directories. They contain the raw source code for the libraries downloaded directly from the web. No modifications are generally made in these directories.
ol-custom/
is the OPS custom built ol (OpenLayers) library which essentially is a subset of the complete ol source code, but only the pieces the OPS GeoPortal needs/uses. This allows it to load fast. More Information Here
opsBuildPortal.py
this python script is used to create new builds of the source code found in app/
. For more details on this see (GeoPortal-Build-Process)[https://github.com/CReSIS/OPS/wiki/GeoPortal-Build-Process]