DEV Community

Hasanul Islam
Hasanul Islam

Posted on • Edited on

6 2

GeoDjango Installation: PostGIS and GDAL

GeoDjango is a world-class geographic Web framework. We will install GeoDjango step by step:

Installing Geospatial library: GDAL :

GeoDjango provides interfaces for some source geospatial libraries e.g. GEOS, PROJ.4, GDAL, GeoIP, PostGIS, SpatiaLite. On ubuntu/Debian, We will install the following packages which will install, directly or by dependency, the required geospatial libraries:

sudo apt-get update
sudo apt-get install python3-pip python3-dev libpq-dev 
sudo apt-get install binutils libproj-dev gdal-bin
pip install GDAL
Enter fullscreen mode Exit fullscreen mode

Database installation: PostGIS :

PostGIS adds geographic object support to PostgreSQL, turning it into a spatial database.

Install PostgreSQL :

sudo apt-get update
sudo apt install postgresql postgresql-contrib
Enter fullscreen mode Exit fullscreen mode

Create Database, User and Grant Privileges :

Log into an interactive Postgres session by typing:

sudo -u postgres psql
Enter fullscreen mode Exit fullscreen mode

First, create a database.

postgres=# CREATE DATABASE db_name;
Enter fullscreen mode Exit fullscreen mode

Next, create a database user.

postgres=# CREATE USER db_user WITH PASSWORD 'password';
Enter fullscreen mode Exit fullscreen mode

Then, give our new user access to administer our new database:

postgres=# GRANT ALL PRIVILEGES ON DATABASE db_name TO db_user;
Enter fullscreen mode Exit fullscreen mode

Exit out of the PostgreSQL prompt by typing:

postgres# \q
Enter fullscreen mode Exit fullscreen mode

Install PostGIS apt package :

sudo apt install postgis --no-install-recommends
Enter fullscreen mode Exit fullscreen mode

Install the package that contains postgis.control manually :

sudo apt-get install postgis postgresql-<POSTGRESQL_VERSION>-postgis-scripts
Enter fullscreen mode Exit fullscreen mode

Create PostGIS Extension :

sudo -u postgres psql
postgres=# \c db_name
db_name=# CREATE EXTENSION postgis;
Enter fullscreen mode Exit fullscreen mode

DATABASES configuration

Add the following ENGINE to DATABASES config at settings.py:

DATABASES = {
    'default': {
         'ENGINE': 'django.contrib.gis.db.backends.postgis',
          ....
    },
}
Enter fullscreen mode Exit fullscreen mode

Add django.contrib.gis to INSTALLED_APPS :

INSTALLED_APPS = [
    'django.contrib.admin',
     .......,
    'django.contrib.gis',
]
Enter fullscreen mode Exit fullscreen mode

Feel free to leave a comment.

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (3)

Collapse
 
borsemayur2 profile image
Mayur Borse

I'm getting error:
could not open extension control file "/usr/share/postgresql/12/extension/postgis.control"

Collapse
 
borsemayur2 profile image
Mayur Borse

Resolved by using command

sudo apt-get install postgis postgresql-<POSTGRESQL_VERSION>-postgis-scripts

Enter fullscreen mode Exit fullscreen mode
Collapse
 
mhihasan profile image
Hasanul Islam

Thanks

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs