SkillAgentSearch skills...

Mist

An abstract map API using MapQuest

Install / Use

/learn @myeti/Mist
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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
View on GitHub
GitHub Stars4
CategoryDevelopment
Updated3y ago
Forks0

Languages

PHP

Security Score

70/100

Audited on Jan 28, 2023

No findings