Installation et configuration d'un serveur OSM

Bonjour à tous,

Je travail actuellement sur un projet de géolocalisation et je souhaiterai utiliser OSM. Je souhaiterai avoir mon propre serveur OSM et j’ai suivi (comme beaucoup) ce tutoriel :

http://tuts.syrinxoon.net/tuts/installer-un-serveur-cartographique-avec-openstreetmap

Le problème c’est que je me retrouve avec un onglet “Base Layer” et deux coches, "Local Tiles " et “Mapnik”. En local tiles j’ai de grosses vilaines tuiles roses qui apparaissent et en mapnik j’ai une carte mondial propre qui apparaît.

  1. Existe-il un tutoriel pour Ubuntu 14.04 LTS ? J’ai tenté en m’appuyant sur plusieurs tuto de le faire fonctionner dessus et j’ai exactement le même problème que sur Ubuntu 12.04.

  2. Mapnik se base sur les données des serveurs “officiels” OSM ? J’ai téléchargé et importer en BDD la carte de France car je ne souhaite pas surcharger les serveurs OSM.

Toute aide serait la bienvenue,

Merci beaucoup à tous les contributeurs du projet OSM :slight_smile:

Mon tuto de référence est plutôt celui de http://switch2osm.org

Il a l’avantage d’être maintenu et mis régulièrement à jour. Repart plutôt de là.
Il manque dans ces tutos des points de contrôle pour savoir si ce qu’on a fait est ok avant de passer à l’étape suivante.

Là, tu as des tuiles roses… et ça peut venir de très très nombreuses raisons !
Il faut commencer par regarder le log apache, puis celui de mod_tile/renderd

Ton serveur fonctionne avec une copie des données, il ne cause donc aucune charge sur les serveurs OSM sauf lorsque tu charge les data, mais en principe tu ne le fait qu’une fois.

Mon tuto de référence est plutôt celui de > http://switch2osm.org

Merci je vais étudier ça :wink:

Ton serveur fonctionne avec une copie des données, il ne cause donc aucune charge sur les serveurs OSM sauf lorsque tu charge les data, mais en principe tu ne le fait qu’une fois.

J’ai du mal à saisir la différence entre mapnik et local tiles. Comment mon serveur peut fonctionner avec une copie des données si je ne télécharge que la carte de France et dans mapnik j’ai la map mondial ?
Cela veut dire que si j’ai des utilisateurs qui se connectent à mon serveur pour afficher la map OSM + ma data en mode mapnik il ne transfert pas les connections à chaque fois vers les serveurs OSM ?

Merci beaucoup pour tes réponses

Ce qui est disponible sur ta carte web comme calque, c’est à toi de décider.
Regarde comment est faite le site web sur lequel tu affiches ta carte, et enlève les layers qui pointent vers openstreetmap.org.
Yves

“mapnik” = tuiles des serveurs openstreetmap.org (générés avec mapnik et abusivement appellé “mapnik”
local-tiles = tuiles générées par TON serveur… si elles sont roses c’est qu’il y a un truc qui ne marche pas

que disent les logs d’apache, puis de renderd ?

Installation serveur Openstreetmap Ubuntu x64 12.04.
la base de ce tuto et ici http://tuts.syrinxoon.net/tuts/installer-un-serveur-cartographique-avec-openstreetmap Je ne suis pas l’auteur, j’ai juste rajouter des lignes.
La source de images ici pour OS Ubuntu X64 http://old-releases.ubuntu.com/releases/12.04.1/
Pour les transféré de fichiers utilisé WINSCP télécharger ici http://winscp.net/download/winscp554setup.exe pour transféré en SSH.
Pour les access en SSH Putty télécharger ici http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

Faire un cd avec l’image ubuntu-12.04.2-server-amd64.iso http://old-releases.ubuntu.com/releases/12.04.1/ubuntu-12.04.2-server-amd64.iso

Installation des dépendances
1)

sudo apt-get update

Mise a jour des list
2)

sudo apt-get upgrade

Mise a jour du serveur.
3)

sudo apt-get install subversion git-core tar unzip wget bzip2 build-essential autoconf libtool libxml2-dev libgeos-dev libpq-dev libbz2-dev proj munin-node munin libprotobuf-c0-dev protobuf-c-compiler libfreetype6-dev libpng12-dev libtiff4-dev libicu-dev libboost-all-dev libgdal-dev libcairo-dev libcairomm-1.0-dev apache2 apache2-dev libagg-dev python-software-properties

Création d’un nouvel utilisateur
1)

sudo adduser osm

Tapez le mot de passe osm deux fois pour le confirmer.

Installation de PostgreSQL
1)

sudo apt-get install postgresql postgresql-9.1-postgis postgresql-contrib postgresql-server-dev-9.1

Création de la base de données
1)

sudo -u postgres -i
createuser osm

Réprondre Yes a la question “superuser”
3)

createdb -E UTF8 -O osm osm
psql
ALTER USER osm WITH PASSWORD 'osm';

Faite en Ctrl-d pour sortir
6

exit

pour revenir a l’user de l’installation.

Modifier le type de connexion pour psql
Editer le fichier suivant.

sudo nano /etc/postgresql/9.1/main/pg_hba.conf

Chercher le ligne suivant:

local        all          all          peer

Et remplacer le “peer” par md5 comme suivant.

local        all          all         md5

Une fois terminer faite un Ctrl-O pour sauvegarder et Ctrl-X pour sortir.
Relance le service avec la commande:

sudo service postgresql restart

Configuration de la base de données avec PostGIS
1)

psql -d osm -U osm -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql

Le mot de passe osm
2)

psql -d osm -U osm -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql

Le mot de passe osm

Relancer la machine avec la commande suivante

sudo reboot

Installation d’osm2pgsql
Faire attention maintenant

sudo add-apt-repository ppa:kakrueger/openstreetmap

Tapez sur entrée pour confirmer.
2)

sudo apt-get update

Mise a jour des list.
3

sudo apt-get install osm2pgsql

•Répondez non (no) à la première question.
•Dites au script d’utiliser la base osm à la seconde question
•Enfin, répondez www-data osm à la troisième et dernière question. Séparez les noms d’utilisateurs par un espace.

Installation de Mapnik
1)

sudo add-apt-repository ppa:mapnik/v2.1.0

Tapez sur entrée pour confirmer.
2)

sudo apt-get update

Mis a jour des list.
3)

sudo apt-get install libmapnik mapnik-utils python-mapnik

.
Afin de vérifier que Mapnik a été correctement installé, ouvrez un REPL Python et essayez d’importer mapnik.

python
>>> import mapnik

Si python vous répond avec >>> c’est dans la boîte. Sinon, tentez de diagnostiquer et de corriger le problème avant de poursuivre le tutoriel.
Pressez CTRL+D pour quitter le REPL.

Installation de mod_tile

Mis a jour des liste pour le X64 avec la commande suivante:

sudo add-apt-repository ppa:kakrueger/openstreetmap
sudo apt-get install libapache2-mod-tile

Reprondre Yes au deux question.

Relancer le service:

sudo service apache2 reload

Configuration de Mapnik
Modifiez le fichier /etc/mapnik-osm-data/inc/datasource-settings.xml.inc pour y entrer les informations de connexion à la base de données.
Avec la commande suivante:

sudo nano /etc/mapnik-osm-data/inc/datasource-settings.xml.inc

Il devras ressemblé a sa:

postgis
osm
localhost
5432
osm
osm

true

-20037508,-19929239,20037508,19929239

Un VirtualHost a été créé pour nous dans le fichier /etc/apache2/sites-available/tileserver_site
Pour mon serveur qui s’appelle openmap les premier ligne ressemble a :
Modifier le fichier (si besoin) avec le non de votre machine a la place de “openmap”
Avec la commande

sudo nano /etc/apache2/sites-available/tileserver_site



<VirtualHost *:80>
ServerAdmin root@localhost

ServerName openmap
ServerAlias a.tile.openmap b.tile.openmap c.tile.openmap.org
DocumentRoot /var/www

increase the log level for more detailed information

LogLevel info

Ctrl-O et Ctrl-X une fois finie.

Par défaut, ce VirtualHost rend les données cartographiques accessibles à partir de http://votre-domaine.com/osm/. Il est possible de modifier ce paramètre dans le fichier _/etc/renderd.conf/.
Pour le fichier /etc/rendere.conf le mien ressemble a sa:

[renderd]
stats_file=/var/run/renderd/renderd.stats
socketname=/var/run/renderd/renderd.sock
num_threads=4
tile_dir=/var/lib/mod_tile ; DOES NOT WORK YET

[mapnik]
plugins_dir=/usr/lib/mapnik/2.0/input
font_dir=/usr/share/fonts/truetype/ttf-dejavu
font_dir_recurse=true

[default]
URI=/osm/
XML=/etc/mapnik-osm-data/osm.xml
DESCRIPTION=This is the standard osm mapnik style
;ATTRIBUTION=©<a href="> http://www.openstreetmap.org/">OpenStreetMap</a> > and <a href="> http://wiki.openstreetmap.org/w>
iki/Contributors">contributors, <a href="> http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a> >
HOST=localhost
;SERVER_ALIAS=> http://a.tile.openstreetmap.org
;SERVER_ALIAS=> http://b.tile.openstreetmap.org
;HTCPHOST=proxy.openstreetmap.org

Téléchargement et importation des données

Pour faire le commande suivante je conseil de se mettre en direct sur la machine .

Créer le répertoire de téléchargements:

cd /home

pour vous mettre dans le répertoire utilisateur après vous tapez la commande ls pour avoir la liste .

cd /"user de l'installation de la machine"

.

mkdir map



cd map

Choisir votre régions a l’adresse suivante: http://download.geofabrik.de/openstreetmap/europe/france/
Note : Téléchargez uniquement les fichiers portant l’extension .osm.bz2, les autres ne nous intéressent pas dans le cas présent.
pour moi ces l’ile de France :

wget http://download.geofabrik.de/europe/france/ile-de-france-latest.osm.bz2

Importation des données

osm2pgsql -K -c -s -d osm -U osm -W ile-de-france-latest.osm.bz2

Il m’aura fallu environ 15 minutes pour importer 4Go de données sur une machine possédant un processeur 2 coeurs et 8Go de RAM. Sachez donc que ça peut être très long.

Test
Nous allons maintenant pouvoir vérifier si tout fonctionne.
Redémarré la machine:

sudo reboot

Rendez-vous à l’adresse http://votre-serveur.com/mod_tile et vérifiez que vous voyez les statistiques de Mod Tile.
En cas de problème, vérifiez les logs de renderd.

renderd  -f

Ctrl-C pour sortir:

Affichage de la carte

Leaflet est une petite bibliothèque Javascript permettant d’afficher une carte sur n’importe quelle page web. Je ne m’étenderai pas trop sur l’utilisation de la bibliothèque, vous pouvez lire les tutoriels et la documentation de Leaflet pour en savoir plus ici http://leafletjs.com/reference.html.
Dans l’exemple ci-dessous, je souhaite afficher la carte, centrée sur ile de france, à l’adresse http://mon-serveur.com/map/.

Créer le répertoire map pour acces depuis l’explorateur internet de votre choix Firefox up.
Tapez les commandes suivante:

 
cd /opt
sudo mkdir map
sudo chmod -R 777 map
wget http://leaflet-cdn.s3.amazonaws.com/build/leaflet-0.7.3.zip
sudo unzip leaflet-0.7.3.zip

Le “777” ne pas utilisé en prod, j’ai mis en “777” pour pouvoirs modifier mes pages sans problèmes avec winscp par la suite, je le déconseille en production…
Crée le raccourci pour que lorsque vous aller faire http://monserveur/map/ cela arrive dans le répertoire /opt/map/, faite la commande suivante:

sudo ln -s /opt/map/ /var/www/map/

Mont fichier index.htm:
Remplacé openmap par le non de votre machine ou IP.

<html>
  <head>
    <title>My OSM Map OPENMAP</title>
    <link rel="stylesheet" type="text/css" href="leaflet/leaflet.css" />
    <script src="leaflet/leaflet.js"></script>
    <script type="text/javascript">
      var map;
      var ajaxRequest;
      var plotlist;
      var plotlayers = [];

      var marker_home;
      var marker_isen;

      function init_map() {
        // Set up the map
        map = new L.Map('map');

        // Create the tile layer with correct attribution
        var osmUrl='http://openmap/osm/{z}/{x}/{y}.png';
        var osmAttrib='Map data with the help of Syrinxoon Tuts';
        var osm = new L.TileLayer(osmUrl, {minZoom: 10, maxZoom: 17, attribution: osmAttrib});       

        // Start the map in Brest 
        map.setView(new L.LatLng(48.86905, 2.76885), 15);
        map.addLayer(osm);

        // Adding a marker for demo purposes
        marker_isen = L.marker([48.87019, 2.76885]).addTo(map);

        // Binding popup
        marker_isen.bindPopup("<strong>Mon</strong><br />Bureau");

		
		
		
      }
    </script>
  </head>
  <style type="text/css">
  #map {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  </style>
  <body onload="init_map();">
    <div id="map"></div>
  </body>
</html>

Et mon fichier slippymap.html qui ce trouve a l’emplacement suivant : /var/www/osm/
Remplacé openmap par le non de votre machine ou IP.

<html>
<head>
    <title>OSM Local Tiles</title>
    <link rel="stylesheet" href="style.css" type="text/css" />
    <!-- bring in the OpenLayers javascript library
         (here we bring it from the remote site, but you could
         easily serve up this javascript yourself) -->
    <script src="http://openlayers.org/api/OpenLayers.js"></script>
 
    <!-- bring in the OpenStreetMap OpenLayers layers.
         Using this hosted file will make sure we are kept up
         to date with any necessary changes -->
    <script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>
 
    <script type="text/javascript">
// Start position for the map (hardcoded here for simplicity)
        var lat=48.8;
        var lon=2.7;
        var zoom=10;
 
        var map; //complex object of type OpenLayers.Map
 
        //Initialise the 'map' object
        function init() {
 
            map = new OpenLayers.Map ("map", {
                controls:[
                    new OpenLayers.Control.Navigation(),
                    new OpenLayers.Control.PanZoomBar(),
                    new OpenLayers.Control.Permalink(),
                    new OpenLayers.Control.ScaleLine({geodesic: true}),
                    new OpenLayers.Control.Permalink('permalink'),
                    new OpenLayers.Control.MousePosition(),                    
                    new OpenLayers.Control.Attribution()],
                maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
                maxResolution: 156543.0339,
                numZoomLevels: 19,
                units: 'm',
                projection: new OpenLayers.Projection("EPSG:900913"),
                displayProjection: new OpenLayers.Projection("EPSG:4326")
            } );
 
            // This is the layer that uses the locally stored tiles
            var newLayer = new OpenLayers.Layer.OSM("Local OPENMAP", "http://openmap/osm/${z}/${x}/${y}.png", {numZoomLevels: 19});
            map.addLayer(newLayer);
			// Mapnik
            layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Internet Mapnik");
            map.addLayer(layerMapnik);
			// Cyclemap
			 layerMapnik = new OpenLayers.Layer.OSM.CycleMap("Internet CycleMap");
            map.addLayer(layerMapnik);
			// Transport
			 layerMapnik = new OpenLayers.Layer.OSM.TransportMap("Internet TransPortMap");
            map.addLayer(layerMapnik);
			
			// This is the end of the layer
 
            var switcherControl = new OpenLayers.Control.LayerSwitcher();
            map.addControl(switcherControl);
            switcherControl.maximizeControl();
 
            if( ! map.getCenter() ){
                var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
                map.setCenter (lonLat, zoom);
            }
        }
 
    </script>
</head>
 
<!-- body.onload is called once the page is loaded (call the 'init' function) -->
<body onload="init();">
 
    <!-- define a DIV into which the map will appear. Make it take up the whole window -->
    <div style="width:100%; height:100%" id="map"></div>
 
</body>
 
</html>

Voila, je pence que la normalement si vous avez suivis le tuto le cela devrais fonctionner, a l’adresse http://monserveur/map en prime vous savez la ou je bosse. Après ont peut mettre trois machines a,b,c d’après ce que j’ai compris dans la configuration pour boosté l’affichage, mes a mon niveau je pences que une machine seul sufi en mode intranet, la mien BiXeon 3.Go , 8Go RAM, DD 74G 15k SCSI en RAID 10, pour la France en mode teste. Il luis a fallu 10heures pour décompresse la France entier, on verras plus tard pour la gamme supérieur, Dell PowerEdge R620 avec des SSD cela devrais allée.

A bientôt

PS: je rappelle que je ne suis pas l’auteur du tutos de base, j’ai fais des copier coller, et rajouter des infos qui pour moi me semble utilile, l’auteur ces Nathan Le Ray a l’adresse suivant http://tuts.syrinxoon.net/tuts/installer-un-serveur-cartographique-avec-openstreetmap .

Bonjour,

Pour info, un tuto récent du même genre, cette fois-ci sous Debian Wheezy
http://adrien.caillot.free.fr/?p=5362

Bonne journée

Bonjour,
Merci pour ce tuto!
Je suis bloqué au niveau du paramétrage de mapnik: je n’ai pas le fichier: /etc/mapnik-osm-data/inc/datasource-settings.xml.inc
Pourriez-vous m’aiguiller SVP? Merci d’avance

Bonjour
si tu na pas le fichier tu na pas suivi le tuto.
autre solution tu a oublier des commande.
la version c 12… Ubuntu la 14… ne fonctionne pas.
Cordialement

la version c 12… Ubuntu la 14… ne fonctionne pas.

J’ai suivi ce tuto pour la 14.04:
https://switch2osm.org/fr/servir-des-tuiles/mettre-en-place-manuellement-un-serveur-de-tuiles-14-04/
Mon problème maintenant c’est que lorsque je vais tester mon localhost, les tuiles sont roses…
voici le log de renderd:
^[[Arenderd[5293]: Rendering daemon started
renderd[5293]: Initiating reqyest_queue
renderd[5293]: Parsing section renderd
renderd[5293]: Parsing render section 0
renderd[5293]: Parsing section mapnik
renderd[5293]: Parsing section default
renderd[5293]: config renderd: unix socketname=/var/run/renderd/renderd.sock
renderd[5293]: config renderd: num_threads=4
renderd[5293]: config renderd: num_slaves=0
renderd[5293]: config renderd: tile_dir=/var/lib/mod_tile
renderd[5293]: config renderd: stats_file=/var/run/renderd/renderd.stats
renderd[5293]: config mapnik: plugins_dir=/usr/local/lib/mapnik/input
renderd[5293]: config mapnik: font_dir=/usr/share/fonts/truetype/ttf-dejavu
renderd[5293]: config mapnik: font_dir_recurse=1
renderd[5293]: config renderd(0): Active
renderd[5293]: config renderd(0): unix socketname=/var/run/renderd/renderd.sock
renderd[5293]: config renderd(0): num_threads=4
renderd[5293]: config renderd(0): tile_dir=/var/lib/mod_tile
renderd[5293]: config renderd(0): stats_file=/var/run/renderd/renderd.stats
renderd[5293]: config map 0: name(default) file(/usr/local/share/maps/style/OSMBright/OSMBright.xml) uri(/osm/) htcp() host(localhost)
renderd[5293]: Initialising unix server socket on /var/run/renderd/renderd.sock
socket bind failed for: /var/run/renderd/renderd.sock
-----------x---------------------
Et pour celui d’apache2 je ne sais pas comment l’obtenir :blush: … chuis noob ^^

Bon alors, moi aussi j’ai un soucis, mais je vais déjà essayer de répondre a ton problème.

As tu bien utilisé ces deux commandes :

sudo mkdir /var/run/renderd
sudo chown username /var/run/renderd

J’ai rencontré exactement le même soucis hier, et en faite, c’est a rien n’y comprendre. Je les avais pourtant bien taper, mais j’ai du le refaire. Et le pire du pire, c’est que sur mon pc qui m’a servis de test, je dois le refaire après chaque démarrage. Pour le moment ce n’est pas grave, mais c’est galère.


MON PROBLÈME : Alors moi j’ai un serveur fonctionnel en suivant le même tuto. En revanche, je suis limité au zoom 18. J’ai regardé un peu de partout dans les fichiers OSMbright, mais rien ne me permet de changer ça.
Lorsque j’essaye de récupérer une tuile de zoom 19, j’ai ce message : Received request for map layer default is outside of acceptable bounds z(19), x(270372),y(188457).


Une idée?

Regarde /var/log/syslog c’est là que j’y trouve l’activité de renderd

C’est bon, en faite c’était dans mon fichier de configuration de render que j’avais MaxZoom a 18 :wink:

bonjours svp moi jai suivi ce tuto pour mettre en place mon serveur http://tuts.syrinxoon.net/tuts/installer-un-serveur-cartographique-avec-openstreetmap
je suis bute au nivo de linstallation de osm2pgsql pour pouvoir importer les donnees osm :question: :question: :question:
jinstalle belle et bien osm2pgsql mais a limportation avec la commande suivante :

 osm2pgsql -K -c -s -d osm -U osm -W cameroon-lastest.osm.bz2

maffiche

 Error: pg_wrapper: osm2pgsql was not found in /usr/lib/postgresql/9.4/bin

aidez moi svp je desespere

Merci de vous relire avant de poster, votre message est incompréhensible.

c’est mieux la??

Pas vraiment ! Commencez déjà par mettre les apostrophes et les accents.

Et

je suis bute au nivo

mérite une correction.

Êtes-vous étranger ? Si oui, on vous excuse.

Bonjour

j’ai remarquer aussi que le zoon et bloquer, je regarde sa, “mes vas pas casé trois pattes a un canard”.
je vous demande de bien respecté le tuto bien mettre la version de OS.
ce fais déjà pas mal d’années que sa tourne pour moi, je fais une mis a jour par ans.
je peut faire des VM, vsphere 6.0, sur demande.
cdt

Bonjour suite a ma presentation , je n’ai trouver que cette discution pour exposer mon probleme

Je suis sous Ubuntu 16.04 , mon PC est un dual core et 4 gb de ram , j’ai suivi plusieur tutto pour mon Install sous 16.04

le principal a ete celui ci https://www.linuxbabe.com/linux-server/openstreetmap-tile-server-ubuntu-16-04

les autres mon aider

https://ircama.github.io/osm-carto-tutorials/tile-server-ubuntu/
http://wiki.openstreetmap.org/wiki/User:SomeoneElse/Ubuntu_1604_tileserver_load
https://switch2osm.org/fr/servir-des-tuiles/mettre-en-place-manuellement-un-serveur-de-tuiles-14-04/
http://adrien.caillot.free.fr/?p=5362

Apres avoir melanger pas mal de chose ( dont je ne saurais vous dire quoi … :slight_smile: ) j’ai telecharger le fichier italy-latest.osm.pbf sur le site http://download.geofabrik.de/europe/italy.html, j’en suis arriver a avoir ma page http://localhost.index.html avec une belle carte de l’italie mais je n’ai que 4 niveaux de zoom

j’ai regarder mon fichier renderd.conf et j’ai bien le maxzoom a 20
j’ai ete regarder dans mon dossier /var/lib/mod_tile/ajt et là je me suis rendu compte que j’ai que 8 dossier de 0 a 7 et quelque fichier .meta a l’interieur.

mes questions sont :
Le dossier mod_tile est t’il bien le dossier ou va decompresser le fichier .pbf ?
Le logiciel qui decompresse les fichier .pbf est osm2pgsql aurait t’il mal fait sont travail ?
ou est ce mon PC qui n’est pas assez puissant pour un fichier .pbf de 1,8 gb ?

merci pour votre aide

thierry

j’ai creer un autre user postgresql en gardant le meme database (j’avais un probleme de password su l’ancien )

j’ai fait un osm2pgsql -K -c -s -d gis -U gis -W italy-latest.osm.pbf et la moulinette est reparti :slight_smile:

ont verra demain ce qu’il en sort

thierry