Project

General

Profile

Wiki » History » Version 29

Philippe May, 12/10/2018 12:10

1 3 Philippe May
h1. Software
2 1 Philippe May
3 15 Philippe May
Gisaf (for, eg, GIS Auroville Front-end) is a web application that is under development.
4 1 Philippe May
5 27 Philippe May
[[User manual]]
6 2 Philippe May
[[Server]]
7 2 Philippe May
[[Client]]
8 1 Philippe May
[[Stack]]
9 15 Philippe May
[[Mapbox]]
10 3 Philippe May
11 7 Philippe May
h2. Database
12 7 Philippe May
13 7 Philippe May
Gisaf uses a Postgis database.
14 1 Philippe May
15 9 Philippe May
h3. Creation
16 9 Philippe May
17 9 Philippe May
To create an appropriate database, run these commands:
18 9 Philippe May
<pre>
19 9 Philippe May
createuser avgis -P
20 9 Philippe May
createdb avgis -O avgis
21 9 Philippe May
psql avgis -c "CREATE EXTENSION postgis;"
22 9 Philippe May
</pre>
23 9 Philippe May
24 9 Philippe May
h3. Notes
25 9 Philippe May
26 7 Philippe May
The geometry features' metadata MUST be set with the proper SRID, which can be tricky. See below.
27 7 Philippe May
28 3 Philippe May
h3. Import files
29 5 Philippe May
30 16 Philippe May
31 8 Philippe May
h2. Development
32 8 Philippe May
33 8 Philippe May
See the README file
34 22 Philippe May
35 22 Philippe May
h2. Configuration
36 22 Philippe May
37 22 Philippe May
TODO: more about parameters of the conf file
38 22 Philippe May
39 22 Philippe May
h3. Map
40 22 Philippe May
41 22 Philippe May
The default view of the map can be configured in the gisaf yaml config, eg:
42 22 Philippe May
43 22 Philippe May
<pre>
44 22 Philippe May
map:
45 22 Philippe May
  openMapTilesKey: cS3lrAfYXoM4MDooT6aS
46 22 Philippe May
  zoom: 14
47 22 Philippe May
  pitch: 45
48 22 Philippe May
  lat: 12.0000
49 22 Philippe May
  lng: 79.8106
50 22 Philippe May
  bearing: 0
51 22 Philippe May
  style: OSM (vector)
52 22 Philippe May
  opacity: 0.3
53 22 Philippe May
  tilesUrl: /tiles/data/india-vector.json
54 22 Philippe May
</pre>
55 22 Philippe May
56 22 Philippe May
h3. Production
57 22 Philippe May
58 22 Philippe May
Gisaf reads the file @/etc/gisaf/prod.yml@ at boot.
59 22 Philippe May
60 22 Philippe May
61 22 Philippe May
h3. Development
62 22 Philippe May
63 22 Philippe May
Gisaf reads the @~/.gisaf/prod.yml@ file at boot.
64 22 Philippe May
65 22 Philippe May
66 22 Philippe May
h2. Third party
67 22 Philippe May
68 22 Philippe May
h3. TileServer
69 22 Philippe May
70 22 Philippe May
"TileServer-gl":https://github.com/klokantech/tileserver-gl is a small node application that can serve vector tiles (mbtiles) for mapbox without the need for an external provider.
71 22 Philippe May
72 22 Philippe May
The maps Gisaf base layers (the definition file being located in @gisaf-app/src/app/map/base_styles.ts@) in can be parametered such that a base layer is hosted locally (see the gisaf config file).
73 22 Philippe May
74 29 Philippe May
h4. Install tileserver-gl-light
75 29 Philippe May
76 29 Philippe May
<pre>
77 29 Philippe May
yarn global add tileserver-gl-light
78 29 Philippe May
</pre>
79 29 Philippe May
80 29 Philippe May
81 23 Philippe May
h4. Download the mbtiles
82 23 Philippe May
83 25 Philippe May
From: https://openmaptiles.com/downloads/planet/ , and store the relevant one on the server's filesystem (eg. @/usr/local/2017-07-03_asia_india.mbtiles@)
84 22 Philippe May
85 22 Philippe May
h4. Service
86 22 Philippe May
87 22 Philippe May
A systemd service configuration file, in @/etc/systemd/system/tileserver-gl-light.service@:
88 22 Philippe May
89 22 Philippe May
<pre>
90 22 Philippe May
[Service]
91 25 Philippe May
ExecStart=/usr/bin/node /usr/lib/node_modules/tileserver-gl-light/src/main.js --cors true -c /etc/tileserver/conf.json
92 22 Philippe May
Restart=always
93 22 Philippe May
User=www-data
94 22 Philippe May
Group=www-data
95 22 Philippe May
Environment=NODE_ENV=production
96 22 Philippe May
97 22 Philippe May
[Install]
98 22 Philippe May
WantedBy=multi-user.target
99 22 Philippe May
</pre>
100 22 Philippe May
101 22 Philippe May
h4. Configuration
102 22 Philippe May
103 22 Philippe May
Eg, in @/etc/tileserver/conf.json@:
104 22 Philippe May
105 22 Philippe May
<pre>
106 22 Philippe May
{
107 22 Philippe May
  "options": {
108 22 Philippe May
    "paths": {
109 22 Philippe May
      "root": "",
110 26 Philippe May
      "sprites": "/usr/lib/node_modules/tileserver-gl-light/node_modules/tileserver-gl-styles/styles/osm-bright"
111 22 Philippe May
    },
112 22 Philippe May
    "domains": [
113 22 Philippe May
      "gis.auroville.org.in"
114 22 Philippe May
    ],
115 22 Philippe May
    "styles": {}
116 22 Philippe May
  },
117 22 Philippe May
  "data": {
118 22 Philippe May
    "india-vector": {
119 22 Philippe May
      "mbtiles": "/usr/local/2017-07-03_asia_india.mbtiles"
120 22 Philippe May
    }
121 22 Philippe May
  }
122 1 Philippe May
}
123 24 Philippe May
</pre>
124 24 Philippe May
125 24 Philippe May
h4. Run the service
126 24 Philippe May
127 24 Philippe May
<pre>
128 24 Philippe May
systemctl enable --now tileserver-gl-light.service
129 22 Philippe May
</pre>
130 22 Philippe May
131 22 Philippe May
h4. nginx proxy
132 22 Philippe May
133 22 Philippe May
In order the mbtiles to be served by tileserver, add in the nginx conf (adjust eventually):
134 22 Philippe May
135 22 Philippe May
<pre>
136 22 Philippe May
    location /tiles/ {
137 22 Philippe May
        proxy_pass http://127.0.0.1:8080/;
138 22 Philippe May
    }
139 22 Philippe May
</pre>