Project

General

Profile

Wiki » History » Version 31

Philippe May, 12/10/2018 15:39

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 30 Philippe May
Unfortunately, it requires a much older version of node (6.x).
77 30 Philippe May
78 29 Philippe May
<pre>
79 29 Philippe May
yarn global add tileserver-gl-light
80 29 Philippe May
</pre>
81 29 Philippe May
82 29 Philippe May
83 23 Philippe May
h4. Download the mbtiles
84 23 Philippe May
85 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@)
86 22 Philippe May
87 22 Philippe May
h4. Service
88 22 Philippe May
89 22 Philippe May
A systemd service configuration file, in @/etc/systemd/system/tileserver-gl-light.service@:
90 22 Philippe May
91 22 Philippe May
<pre>
92 22 Philippe May
[Service]
93 25 Philippe May
ExecStart=/usr/bin/node /usr/lib/node_modules/tileserver-gl-light/src/main.js --cors true -c /etc/tileserver/conf.json
94 22 Philippe May
Restart=always
95 22 Philippe May
User=www-data
96 22 Philippe May
Group=www-data
97 22 Philippe May
Environment=NODE_ENV=production
98 22 Philippe May
99 22 Philippe May
[Install]
100 22 Philippe May
WantedBy=multi-user.target
101 22 Philippe May
</pre>
102 22 Philippe May
103 22 Philippe May
h4. Configuration
104 22 Philippe May
105 22 Philippe May
Eg, in @/etc/tileserver/conf.json@:
106 22 Philippe May
107 22 Philippe May
<pre>
108 22 Philippe May
{
109 22 Philippe May
  "options": {
110 22 Philippe May
    "paths": {
111 22 Philippe May
      "root": "",
112 26 Philippe May
      "sprites": "/usr/lib/node_modules/tileserver-gl-light/node_modules/tileserver-gl-styles/styles/osm-bright"
113 22 Philippe May
    },
114 22 Philippe May
    "domains": [
115 22 Philippe May
      "gis.auroville.org.in"
116 22 Philippe May
    ],
117 22 Philippe May
    "styles": {}
118 22 Philippe May
  },
119 22 Philippe May
  "data": {
120 22 Philippe May
    "india-vector": {
121 22 Philippe May
      "mbtiles": "/usr/local/2017-07-03_asia_india.mbtiles"
122 22 Philippe May
    }
123 22 Philippe May
  }
124 1 Philippe May
}
125 24 Philippe May
</pre>
126 24 Philippe May
127 24 Philippe May
h4. Run the service
128 24 Philippe May
129 24 Philippe May
<pre>
130 24 Philippe May
systemctl enable --now tileserver-gl-light.service
131 22 Philippe May
</pre>
132 22 Philippe May
133 22 Philippe May
h4. nginx proxy
134 22 Philippe May
135 22 Philippe May
In order the mbtiles to be served by tileserver, add in the nginx conf (adjust eventually):
136 22 Philippe May
137 22 Philippe May
<pre>
138 22 Philippe May
    location /tiles/ {
139 22 Philippe May
        proxy_pass http://127.0.0.1:8080/;
140 22 Philippe May
    }
141 22 Philippe May
</pre>
142 30 Philippe May
143 30 Philippe May
h4. Alternative for getting mbtiles: generation from osm data
144 30 Philippe May
145 30 Philippe May
Download from an OSM mirror:
146 30 Philippe May
<pre>
147 30 Philippe May
curl -O http://download.openstreetmap.fr/extracts/asia/india/tamil_nadu.osm.pbf
148 30 Philippe May
curl -O http://download.openstreetmap.fr/extracts/asia/india/puducherry.osm.pbf
149 30 Philippe May
</pre>
150 30 Philippe May
151 30 Philippe May
TODO: generation of mbtiles:
152 30 Philippe May
153 30 Philippe May
<pre>
154 30 Philippe May
## Need to generate a single .osm.pdf files 
155 30 Philippe May
ogr2ogr -f MBTILES target.mbtiles puducherry.osm.pbf -dsco MAXZOOM=15
156 30 Philippe May
</pre>
157 30 Philippe May
158 31 Philippe May
h4. Alternative for serving mbtiles
159 31 Philippe May
160 31 Philippe May
TODO: try
161 31 Philippe May
162 31 Philippe May
* tegola: https://github.com/go-spatial/tegola
163 31 Philippe May
* mbtiles-server: https://github.com/tobinbradley/mbtiles-server