blob: 71cb8a8b318c98f576354b82c456845e0d84acb5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
This is a folder with python 2 and node scripts to produce geographical
data for the Mullvad VPN app.
= Dependency installation notes =
1. Run the following command in terminal to install python dependencies:
pip install -r requirements.txt
2. Run `npm install -g topojson-server` to install `geo2topo` tool which is
used by python scripts to convert GeoJSON to TopoJSON
= Geo data installation notes =
Go to http://www.naturalearthdata.com/downloads/50m-cultural-vectors/ and
download ZIP files with the following shapes:
- Admin 0 – Countries
- Admin 1 – States, provinces - boundary lines
- Populated Places - simple dataset is enough
or use cURL to download all ZIPs:
```
curl -L -O http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_admin_0_countries.zip
curl -L -O http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_admin_1_states_provinces_lines.zip
curl -L -O http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_populated_places_simple.zip
```
Extract the downloaded ZIP files into geo-data.
Make sure the following folders exist after extraction:
- ne_50m_admin_0_countries
- ne_50m_admin_1_states_provinces_lines
- ne_50m_populated_places_simple
or use the following script:
```
mkdir ne_50m_admin_1_states_provinces_lines
mkdir ne_50m_populated_places_simple
mkdir ne_50m_admin_0_countries
unzip ne_50m_admin_0_countries.zip -d ne_50m_admin_0_countries
unzip ne_50m_admin_1_states_provinces_lines.zip -d ne_50m_admin_1_states_provinces_lines
unzip ne_50m_populated_places_simple.zip -d ne_50m_populated_places_simple
```
= Geo data extraction notes =
Run the following script to produce a TopoJSON data used by the app:
```
python extract-geo-data.py
```
and finally generate the R-Tree cache:
```
npx babel-node prepare-rtree.js
```
At this point all of the data should be saved in geo-data/out folder.
= App integration notes =
Once you've extracted all the geo data, run the integration script that will
copy all files ignoring intermediate ones into the app/assets/geo folder:
```
python integrate-into-app.py
```
|