Différences entre les versions de « Overpass »
Ligne 111 : | Ligne 111 : | ||
La méthode la plus rapide (plusieurs heures tout de même) et la plus complète est de cloner les données à l'instant T. | La méthode la plus rapide (plusieurs heures tout de même) et la plus complète est de cloner les données à l'instant T. | ||
=== Clonage des données === | |||
<syntaxhighlight lang="bash" gutter="false" toolbar="false"> | <syntaxhighlight lang="bash" gutter="false" toolbar="false"> | ||
Ligne 117 : | Ligne 119 : | ||
Lorsque le clonage est terminé, le répertoire "/opt/osm-3s/database" pèse environ 326 Go. | Lorsque le clonage est terminé, le répertoire "/opt/osm-3s/database" pèse environ 326 Go. | ||
=== Test === | |||
Pour vérifier que l'API trouve bien les données, on exécute "osm3s_query" et on entre une requête. "Ctrl+D" pour sortir : | |||
<syntaxhighlight lang="bash" gutter="false" toolbar="false"> | |||
/opt/osm-3s/osm-3s_v0.7.56.9/bin/osm3s_query --db-dir=/opt/osm-3s/database | |||
<query type="node"><bbox-query n="51.0" s="50.9" w="6.9" e="7.0"/><has-kv k="amenity" v="pub"/></query><print/> | |||
</syntaxhighlight> | |||
== Ressources == | == Ressources == |
Version du 19 avril 2021 à 13:19
Overpass est une API permettant d'interroger des données OSM.
1 Mise en place d'un serveur Overpass (Debian)
1.1 Pré-requis
- Un serveur avec un disque d'au moins 500 Go, de préférence un SSD, et au moins 8 Go de mémoire RAM.
- Un nom de domaine pointant vers le serveur.
1.2 Création d'un utilisateur système
sudo adduser overpass --system --shell /bin/bash --group
1.3 Création de répertoires
sudo mkdir -p "/opt/osm-3s/database/"
sudo mkdir "/opt/osm-3s/replicate/"
sudo mkdir "/opt/osm-3s/logs/"
sudo chown overpass:overpass -R /opt/osm-3s
1.4 Installation d'Overpass
1.4.1 Téléchargement
sudo wget https://dev.overpass-api.de/releases/osm-3s_v0.7.56.9.tar.gz -P /usr/local/src/
sudo tar -xvf /usr/local/src/osm-3s_v0.7.56.9.tar.gz -C /usr/local/src/
sudo chown overpass:overpass -R /usr/local/src/osm-3s_v0.7.56.9
1.4.2 Compilation et installation
cd /usr/local/src/osm-3s_v0.7.56.9
sudo -u overpass ./configure CXXFLAGS="-O2" --prefix=/opt/osm-3s/osm-3s_v0.7.56.9
sudo apt-get install -y g++ make expat libexpat1-dev zlib1g-dev
sudo -u overpass make
sudo -u overpass make install
1.5 Installation d'Apache
1.5.1 Installation
sudo apt-get install -y apache2 libapache2-mod-auth-openidc python-certbot-apache
sudo a2enmod cgid
sudo a2enmod ext_filter
sudo a2enmod headers
sudo a2enmod setenvif
sudo a2enmod rewrite
1.5.2 Configuration
Fichier de configuration "/etc/apache2/sites-available/000-default.conf" :
<VirtualHost *:80>
ServerName nom_de_domaine
ServerAdmin mail_de_contact
DocumentRoot /var/www/html
DirectoryIndex index.html interpreter
ExtFilterDefine gzip mode=output cmd=/bin/gzip
ScriptAlias /api /opt/osm-3s/osm-3s_v0.7.56.9/cgi-bin/
LogLevel error
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/opt/osm-3s/osm-3s_v0.7.56.9/cgi-bin/">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
</Directory>
</VirtualHost>
Note : le domaine "nom_de_domaine" lié à l'adresse IP du serveur doit être configuré dans les DNS du domaine.
1.5.3 Service
Activation et redémarrage du service :
sudo systemctl enable apache2
sudo systemctl restart apache2
1.5.4 Pare-feu (Nftables)
inet filter input tcp dport {80,443} ct state new,established accept
inet filter output tcp sport {80,443} ct state established accept
1.5.5 Certificat Let's Encrypt
sudo certbot -d nom_de_domaine --apache -n --agree-tos --email mail_de_contact
sudo certbot enhance -d nom_de_domaine -n --redirect --apache --cert-name nom_de_domaine
Note : le renouvellement automatique est mis en place dans "/etc/cron.d/certbot".
1.6 Données OSM
Avant de pouvoir utiliser l'API, il faut charger les données OSM.
La méthode la plus rapide (plusieurs heures tout de même) et la plus complète est de cloner les données à l'instant T.
1.6.1 Clonage des données
su - overpass -c 'nohup /opt/osm-3s/osm-3s_v0.7.56.9/bin/download_clone.sh --db-dir=/opt/osm-3s/database --source=http://dev.overpass-api.de/api_drolbr/ --meta=attic > /opt/osm-3s/logs/download_clone.file &'
Lorsque le clonage est terminé, le répertoire "/opt/osm-3s/database" pèse environ 326 Go.
1.6.2 Test
Pour vérifier que l'API trouve bien les données, on exécute "osm3s_query" et on entre une requête. "Ctrl+D" pour sortir :
/opt/osm-3s/osm-3s_v0.7.56.9/bin/osm3s_query --db-dir=/opt/osm-3s/database
<query type="node"><bbox-query n="51.0" s="50.9" w="6.9" e="7.0"/><has-kv k="amenity" v="pub"/></query><print/>
1.7 Ressources
https://wiki.openstreetmap.org/wiki/Overpass_API/Installation