Skip to content
This repository was archived by the owner on Jan 9, 2018. It is now read-only.

myeti/mist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mist

Mist est une API de cartographie utilisant pour le moment MapQuest

Installation

Copier le dossier mist dans votre projet et enregistrer le namespace mist de la librairie.

Autoloader

Dans le cas où vous ne disposez pas d'autoloader, voici un exemple basique vous permettant de tester Mist (à placer à la racine de votre projet) :

function __autoload($classname)
{
    $root = dirname(__FILE__) . DIRECTORY_SEPARATOR;
    require_once $root . str_replace('\\', DIRECTORY_SEPARATOR, $classname) . '.php';
}

Initialisation

Mist se veut être une librairie abstraite et non liée exclusiement à un seul service, pour se faire, Mist propose une interface permettant à tout service de se plugger dessus.

$api = new mist\api\MapQuest('your_api_key');
$map = new mist\Map($api);

Utilisation

Mist propose 3 services : la recherche de coordonnées, la recherche d'itinéraire et l'affichage de la carte. Chaque fonction de recherche retournera un ou plusieurs objets mist\Location (lat, lng, street, postcode, state, county, country, other)

Recherche de coordonnées

$city = $map->find('Annecy,FR');

Recherche d'itinéraire

$route = $map->path('Paris,FR', 'Annecy,FR'); // encore instable

Afficher la carte

echo $map; // affichera par défaut : Annecy, FR

Afficher la carte sur un endroit précis

echo $map('Paris,FR');

Extension

API

Si vous souhaitez créer votre propre API (pour OpenStreetMap par exemple), elle doit obligatoirement implémenter l'interface mist\API et proposer les fonctions suivantes :

interface API
{

    /**
     * @param $search
     * @return \mist\Location
     */
    public function find($search);

    /**
     * @param $from
     * @param $to
     * @return array
     */
    public function path($from, $to);

    /**
     * @param null $search
     * @return string
     */
    public function display($search = null);

}

Kit

Mist vous propose un class Kit vous permettant de créer vos propres cartes sous forme de graphe. Prenons l'exemple de SpiraMap inclut dans Mist, tout se passe dans la méthode setup :

use mist\Kit;

class SpiraMap extends Kit
{
    protected function setup()
    {
        // tout se passe ici
    }
}

La création du graphe se déroule en 3 étapes, d'abord définir le fichier image représentant la carte :

$this->_mapfile = 'api/SpiraMap.png';

Ensuite la création des villes et endroits (les coordonnées sont en pixels par rapport à la position sur l'image) :

$this->place('Besaid', [926, 2075])
     ->place('Kilika', [1020, 2000])
     ->place('Luca', [1040, 1850]));

Pour finir, la définition des chemins entres les endroits :

$this->road('Besaid', 'Kilika')
     ->road('Kilika', 'Luca');

Ce kit implémente automatiquement les méthodes de parcours et de recherche en fonction du graph que vous avez créé. Il vous suffit alors d'appeler cet API comme MapQuest :

$api = new mist\api\SpiraMap();
$map = new mist\Map($api);

A venir :

  • Options d'affichage de la carte
  • Granularité de recherche

About

An abstract map API using MapQuest

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages