Skip to content

Latest commit

 

History

41 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

server pro ukladani GIS objektu se zakladnimi atributy

GIS objekty (polygony, linie a body) stejneho vyznamu tvori vrtsvy.

vrstva (layer)

Vrstvou muzou byt napr. body v mistech s kontenery na trideni plastu. Dalsi vrstvou jsou napr. body v mistech s kontenery na trideni bioodpadu. Prislusnost k nejake vrstve jednotlive body tridi do skupin. To je dulezite pro vyhledavani. Vrstvy se daji kombinovat v jedne mape a tvorit ruzna komplexni zobrazeni. Rozdeleni do logicky spolu souvisejicich vrstev vektorovych bodu je zasadni. Umoznuje vyhledavat a delat dalsi operace nad prostorovymy objekty.

REST API

vrstvy

  • POST / - vytvori novou vrstvu
  • PUT /:id - upravy vrstvu s danym ID
  • GET /:id - vrati info o vrstve s danum ID
  • GET / - vrati info o vrstvach podle URL params

objekty

  • POST /objs/:layerID/ - vytvori novy objekt ve vrstve s danym layerID
  • PUT /objs/:layerID/:objID - edituje objekt s danym ID v dane vrstve
  • DELETE /objs/:layerID/:objID - dtto operace smazani

DB

Pro ukladani vektoru je pouzit PostGIS jako nejsofistikovanejsi otevrena DB. DB schema ma 2 tabulky:

konfigurace

Pomocí env.vars:

  • PORT: port na ktere app pobezi
  • USE_CORS: true jestli app pobezi na extra url a bude treba CORS
  • DATABASE_URL: connection string do databaze
  • NODE_ENV: viz. clanek
  • SHARED_SECRET: string_for_securing_JWT_tokens

Idelani pouzit Dockerfile a app ovladat pres docker-compose:

  open-js-geo-server:
    build: ./repos/open-js-geo-server
    image: open-js-geo-server
    network_mode: host
    container_name: open-js-geo-server
    environment:
      - PORT=3000
      - DATABASE_URL=postgres://username:secret@localhost:5432/moje_db
      - SHARED_SECRET=string_for_securing_JWT_tokens

testování

token pomoci testovaciho auth

Nejprve ziskejte token pomoci testovaciho auth https://testauth22.herokuapp.com/. Environment variable SHARED_SECRET musite ale nastavit na: verysecretphrase.

SHARED_SECRET=verysecretphrase

Pokus muze vypadat takto:

LOGINDATA='{"uname":"pokus1","passwd":"*"}'
TOKEN=`curl -X POST https://testauth22.herokuapp.com/success/ \
  -d $LOGINDATA -H "Content-Type: application/json"`

DATA='{"title":"pokus1","writers":"*","owner":"11"}'
wget -O- --post-data $DATA \
  --header='Content-Type:application/json' \
  --header="Authorization: Bearer $TOKEN" http://localhost:3001/layers

wget -O- http://localhost:3001/layers | json_pp

zajimavosti

eval $(minikube -p minikube docker-env)
docker build . -f dev/Dockerfile -t modularniurad/gis
kubectl apply -f dev/pod.yaml

kubectl port-forward gis 9229:9229

DB

list avail extensions: select * from pg_available_extensions where Name like 'postgis%';

install postgis CREATE EXTENSION postgis;

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages