Installation serveur Openstreetmap Ubuntu x64 12.04.
la base de ce tuto et ici
http://tuts.syrinxoon.net/tuts/installe ... nstreetmap 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/lat ... /putty.exe
Faire un cd avec l'image
ubuntu-12.04.2-server-amd64.iso http://old-releases.ubuntu.com/releases ... -amd64.iso
Installation des dépendances
1)
Mise a jour des list
2)
Mise a jour du serveur.
3)
Code : Tout sélectionner
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)
Tapez le mot de passe
osm deux fois pour le confirmer.
Installation de PostgreSQL
1)
Code : Tout sélectionner
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)
2)
Réprondre Yes a la question "superuser"
3)
4)
5)
Faite en Ctrl-d pour sortir
6
pour revenir a l'user de l'installation.
Modifier le type de connexion pour psql
Editer le fichier suivant.
Chercher le ligne suivant:
Et remplacer le "peer" par md5 comme suivant.
Une fois terminer faite un Ctrl-O pour sauvegarder et Ctrl-X pour sortir.
Relance le service avec la commande:
Configuration de la base de données avec PostGIS
1)
Code : Tout sélectionner
psql -d osm -U osm -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
Le mot de passe
osm
2)
Code : Tout sélectionner
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
Installation d'osm2pgsql
Faire attention maintenant
1)
Tapez sur entrée pour confirmer.
2)
Mise a jour des list.
3
•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)
Tapez sur entrée pour confirmer.
2)
Mis a jour des list.
3)
.
Afin de vérifier que Mapnik a été correctement installé, ouvrez un REPL Python et essayez d'importer 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:
1)
Reprondre Yes au deux question.
Relancer le service:
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:
Code : Tout sélectionner
sudo nano /etc/mapnik-osm-data/inc/datasource-settings.xml.inc
Il devras ressemblé a sa:
<!--
Settings for your postgres setup.
Note: feel free to leave password, host, port, or use blank
-->
<Parameter name="type">postgis</Parameter>
<Parameter name="password">osm</Parameter>
<Parameter name="host">localhost</Parameter>
<Parameter name="port">5432</Parameter>
<Parameter name="user">osm</Parameter>
<Parameter name="dbname">osm</Parameter>
<!-- this should be 'false' if you are manually providing the 'extent' -->
<Parameter name="estimate_extent">true</Parameter>
<!-- manually provided extent in epsg 900913 for whole globe -->
<!-- providing this speeds up Mapnik database queries -->
<Parameter name="extent">-20037508,-19929239,20037508,19929239</Parameter>
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
<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:
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:
pour vous mettre dans le répertoire utilisateur après vous tapez la commande
ls pour avoir la liste .
.
Choisir votre régions a l'adresse suivante:
http://download.geofabrik.de/openstreet ... pe/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 :
Code : Tout sélectionner
wget http://download.geofabrik.de/europe/france/ile-de-france-latest.osm.bz2
Importation des données
Code : Tout sélectionner
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:
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.
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:
Code : Tout sélectionner
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:
Mont fichier
index.htm:
Remplacé
openmap par le non de votre machine ou IP.
Code : Tout sélectionner
<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.
Code : Tout sélectionner
<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/installe ... nstreetmap .