Mapbox » History » Version 6
Philippe May, 15/07/2019 13:12
1 | 1 | Philippe May | h1. Mapbox |
---|---|---|---|
2 | 1 | Philippe May | |
3 | 1 | Philippe May | Gisaf uses mapbox-gl for rendering online maps. |
4 | 1 | Philippe May | |
5 | 4 | Philippe May | h2. Base maps |
6 | 4 | Philippe May | |
7 | 4 | Philippe May | Mapbox doesn't have the concept of "base map". Instead, Mapbox maps are defined with a _style_ (that we call the _base style_). |
8 | 4 | Philippe May | A mapbox style contains different layers, which can be vector based (eg. labels, roads, areas) or raster (eg. satellite). |
9 | 4 | Philippe May | |
10 | 4 | Philippe May | Gisaf adds layers (in GeoJSON format) at the top the base style. |
11 | 4 | Philippe May | |
12 | 5 | Philippe May | Gisaf allows to pick a base style for the map, though a menu. The options for the base styles are stored in the database (table @map_base_style@), and editable through the admin interface. The definition of the style itself is in _json_ format, and can be created with online tools like "Maputnik":https://maputnik.github.io/editor ("MapboxStudio":https://www.mapbox.com/editor/ is also an alternative, but it's heavily linked to their business ecosystem). |
13 | 4 | Philippe May | |
14 | 1 | Philippe May | |
15 | 2 | Philippe May | h2. Setting styles for the layers (models) |
16 | 1 | Philippe May | |
17 | 1 | Philippe May | There are 2 places where mapbox styles live, depending on the type of layer. |
18 | 1 | Philippe May | |
19 | 1 | Philippe May | h3. Custom models |
20 | 1 | Philippe May | |
21 | 1 | Philippe May | In the @qml@ table, define the style in the column @mapbox-paint@ corresponding to the type in the column @model_name@. |
22 | 1 | Philippe May | |
23 | 1 | Philippe May | h3. Models from categories |
24 | 1 | Philippe May | |
25 | 1 | Philippe May | In the @category@ table, these columns used for styling: |
26 | 1 | Philippe May | |
27 | 1 | Philippe May | * @mapbox_type_custom@: the mapbox type can be overridden, eg. @fill-extrusion@ for polygons (no other known useful cases) |
28 | 1 | Philippe May | |
29 | 1 | Philippe May | * @mapbox_paint@: the mapbox paint style |
30 | 1 | Philippe May | |
31 | 1 | Philippe May | * @mapbox_layout@: the mapbox layout (usually not used) |
32 | 1 | Philippe May | |
33 | 1 | Philippe May | |
34 | 1 | Philippe May | h2. Mapbox style definition |
35 | 1 | Philippe May | |
36 | 1 | Philippe May | The specification of mapbox paint styles can be found at https://www.mapbox.com/mapbox-gl-js/style-spec/ . |
37 | 1 | Philippe May | |
38 | 1 | Philippe May | For example: |
39 | 1 | Philippe May | |
40 | 1 | Philippe May | <pre> |
41 | 1 | Philippe May | {"fill-color": ["rgba", 204, 204, 255, 1]} |
42 | 1 | Philippe May | </pre> |
43 | 3 | Philippe May | |
44 | 6 | Philippe May | h2. Fonts |
45 | 6 | Philippe May | |
46 | 6 | Philippe May | h3. Creation and update of characters |
47 | 6 | Philippe May | |
48 | 6 | Philippe May | The main font file is created with BirdFont, and is in the git repository: @gisaf-app/src/assets/fonts/gisafSymbols.bf@. |
49 | 6 | Philippe May | |
50 | 6 | Philippe May | It is then exported as ttf in Birdfont. |
51 | 6 | Philippe May | |
52 | 6 | Philippe May | |
53 | 6 | Philippe May | h3. Mapping of characters |
54 | 6 | Philippe May | |
55 | 6 | Philippe May | Each character for a layer has a unicode number, which needs to be mapped to the layer it represents. |
56 | 6 | Philippe May | |
57 | 6 | Philippe May | TODO: add documentation about the mapping. |
58 | 6 | Philippe May | |
59 | 6 | Philippe May | |
60 | 6 | Philippe May | h3. Build |
61 | 3 | Philippe May | |
62 | 3 | Philippe May | In the @gisaf-app@ directory: |
63 | 3 | Philippe May | <pre> |
64 | 3 | Philippe May | ./node_modules/.bin/build-glyphs src/assets/fonts/GisafSymbols.ttf src/assets/fonts/glyphs/GisafSymbols/ |
65 | 3 | Philippe May | </pre> |