Accueil > Activités > Arts et techniques > Un serveur cartographique locale local, OpenStreetMap

Un serveur cartographique locale local, OpenStreetMap

jeudi 8 avril 2010, par sarah

Cette réalisation s’est faite dans le cadre du projet Les 5eme Dimensions et le wiki 5emedim

Nous utilisons OSM pour les fonds de carte à partir du serveur central ou de copie locale du fichier .osm de la zone de jeux concernée mais aussi un serveur OSM local qui gère les objets ( node) , utilisateurs ( user et friends ) et leur localisation.

Ce serveur nous donne des cartes alternatives à la réalité utilisées pour plaquer le monde virtuel du jeux par dessus le mondes virtuel de notre réalité.

Ce serveur local constitue la base d’un serveur de jeux.

L’intérêt de cette approche :

 OSM est libre et accessible par plusieurs clients différents, des cartes peuvent être éditée et visualisée par des outils extérieurs, en local ou sur le oueb.
 Les cartes et données OSM ou autre donnée des jeux constituent directement les espaces de jeux, les instantanés des mondes pour les jeux augmentés.
 en gérant ses propres tags, timestamp,user_id, on peut créer des données du ’monde de jeux’
 l’engouement autour d’OSM permettra d’autre technique matérielles ou logiciels de nous approcher.

Ce serveur a été placé sur un mini-pc attaché à un point d’accès WIFI et placé au centre de la zone de jeux.

On peut imaginer plusieurs jeux fonctionnant sur la même base, le même serveur OSM avec des utilisateurs communs, des joueurs commun, et aussi des serveurs différents , monde différents que les joueurs visites au cours de déplacement réel. Le jeux de la place du petit bois ou de la taverne du coin, ce sont des jeux localisés.

OpenStreetMap

OpenStreetMap (OSM) permet de créer et de fournir des données géographiques libres et gratuites. C’est un service libre qui nous permet d’avoir les fonds de carte et aussi une technique pour géo-localiser les objets au cours des jeux.

Les protocoles de communication habituel d’OpenStreeMap est : En bref, on peut discuter avec la base d’OpenStreetMap de multiples façons, par le site oueb, par des demandes criblées directes (on appel une page avec des paramètres de lieu, une commande), ou plus globales ( on demande l’ensemble des données d’une zone), etc. .

Et le schéma de la base de donnée OSM

nodes, current_nodes
    * id (auto_increment in current_nodes)
    * latitude
    * longitude
    * visible = 1|0 (0 for 'deleted' nodes)
    * tags = semicolon-separated key/value pairs 
        (e.g. 'type=pub;name=The Bull').
        ('=' is encoded as '===', ';' is encoded as ';;;'.)
    * timestamp = time of last edit
    * user_id = user id of last editor
    * tile 

ways, current_ways
    * id (auto_increment in current_ways)
    * visible = 1|0 (0 for 'deleted' ways)
    * timestamp = time of last edit
    * user_id = user id of last editor
    * version (not current_ways) 

way_nodes, current_way_nodes
A way is an ordered list of nodes. The ordered list for each way is held in this table.
    * id = way id
    * node_id
    * sequence_id = order in list (auto_increment in way_nodes)
    * version (not current_way_nodes) 

way_tags, current_way_tags
Unlike nodes and segments, ways hold their tags (key/value pairs) 
in separate tables. (There is therefore no need to encode '=' and ';' differently.)
    * id
    * k = key
    * v = value
    * version (not current_way_tags) 

users
    * id
    * email
    * display_name
    * pass_crypt = password (MD5 encrypted)
    * active = 1|0
    * timeout = time when current login times out
    * token = validation string for activating account
    * creation_time
    * visible = true|false
    * home_lat = your location
    * home_lon = your location
    * home_zoom = default zoom level
    * within_lon = preference for how near you 'nearby users' are
    * within_lat = preference for how near you 'nearby users' are*
    * data_public = 1|0, whether you've declared all your edits public
    * description = description of yourself
    * preferences = freeform text prefs field, not yet used? 

messages

User-to-user messaging function.
    * id (auto_increment)
    * user_id
    * from_user_id
    * from_display_name
    * title
    * body
    * sent_on
    * message_read
    * to_user_id 

friends
    * id
    * user_id
    * friend_user_id 

diary_entries
    * id
    * user_id
    * title
    * body
    * created_at
    * updated_at