Jump to content

Extension:GeoData

From mediawiki.org
This page is a translated version of the page Extension:GeoData and the translation is 100% complete.
Manuel des extensions MediaWiki
GeoData
État de la version : stable
Implémentation API , Fonction d'analyseur
Description Ajoute les fonctionnalités de stockage et de récupération des coordonnées géographiques.
Auteur(s) Max Semenik (MaxSemdiscussion)
Politique de compatibilité Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière.
MediaWiki 1.25+
Modifie la base
de données
Oui
  • $wgGlobes
  • $wgMaxCoordinatesPerPage
  • $wgGeoDataIndexGranularity
  • $wgMaxGeoSearchRadius
  • $wgGeoDataRadiusScoreOverrides
  • $wgDefaultDim
  • $wgGeoDataWarningLevel
  • $wgGeoDataInJS
  • $wgGeoDataUseCirrusSearch
  • $wgTypeToDim
  • $wgGeoDataDebug
  • $wgGeoDataBackend
License WTFPL v2.0
Téléchargement
Traduire l’extension GeoData sur translatewiki.net si elle y est disponible
Problèmes Tâches ouvertes · Signaler un bogue

L’extension GeoData permet aux articles de fournir leurs coordonnées géographiques et de les publier via l’API HTTP.

Installation

Moteurs de recherche

D'abord il faut décider du moteur à utiliser pour la recherche :

  • MySQL (par défaut) : est adapté pour les installations de petites et moyennes dimensions. Ne nécessite pas de configuration. Il n’utilise pas les index spatiaux intégrés de MySQL parce que quand l’extension a été développée, SPATIAL n’était pris en charge que par le moteur de stockage MyISAM, qui est pire que rien du tout. Au lieu de cela, il utilise des tuiles de 0,1 × 0,1 degrés pour les recherches, ce qui produit des entrées/sorties un peu plus élevées, mais des mises à jour plus rapides.
  • ElasticSearch est un moteur de recherche puissant. Lors de l’utilisation d’ElasticSearch en tant que moteur, GeoData fonctionne comme un greffon pour CirrusSearch qui ajoute la recherche de texte ES au wiki.

Processus

  • Téléchargez et placez le(s) fichier(s) dans un répertoire appelé GeoData dans votre dossier extensions/.
    Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:
    cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/GeoData
    
  • Ajoutez le code suivant à la fin de votre fichier LocalSettings.php  :
    wfLoadExtension( 'GeoData' );
    
  • Exécutez le script de mise à jour qui va créer automatiquement les tables de base de données dont cette extension a besoin.
  • Si vous allez utiliser GeoData avec ElasticSearch, installez CirrusSearch puis ajoutez
    $wgGeoDataBackend = 'elastic';
    
    à LocalSettings.php, à la fin du chargement de GeoData.
  • Yes Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.

Utilisation

Cette extension ajoute la nouvelle fonction d'analyse {{#coordinates:}} qui sauvegarde les coordonnées dans la base de données. Le format d'entrée de la fonction est rendu compatible autant que possible avec GeoHack .

Glossaire

coordonnées
voir à Coordonnées géographiques
globe
corps terrestre où les coordonnées sont définies. Par défaut il s'agit de la terre. En interne, le globe est représenté par une chaîne de caractères en minuscules. Les globes suivants sont reconnus : earth, mercury, venus, moon, mars, phobos, deimos, ganymede, callisto, io, europa, mimas, enceladus, tethys, dione, rhea, titan, hyperion, iapetus, phoebe, miranda, ariel, umbriel, titania, oberon, triton, pluto. Les globes non mentionnés dans cette liste seront supposés avoir les caractéristiques génériques suivantes : la plage de longitude de 0 à 360°, la longitude Est est comptée positivement. Le sens de la longitude pour les globes connus est défini par les conventions de l'IAU (International Astronomical Union).
dimension
c'est la taille approximative de l'objet. Utilisé par GeoData pour restreindre la recherche et par GeoHack pour déterminer le niveau de zoom approprié pour la carte. L'unité de mesure par défaut est le mètre, bien que le suffixe km puisse être ajouté pour indiquer les kilomètres.
coordonnées primaires et secondaires
les coordonnées primaires définissent l'emplacement du sujet de l'article, tandis que les coordonnées secondaires sont d'autres coordonnées mentionnées dans l'article. Il ne peut y avoir qu'une seule valeur des coordonnées primaires par article, mais autant de coordonnées secondaires que vous le souhaitez à concurrence des restrictions techniques.

Fonctions d'analyse

Format de la fonction :

{{#coordinates:latitude|longitude|[primary|][paramètres GeoHack|][paramètres supplémentaires]}}
Les paramètres vides (tels que || ou | |) sont toujours ignorés.
  • latitude et longitude peuvent être spécifiés sous différents formats :
    • valeur d'entrée directe signée en degrés, par exemple 37.786971|-122.399677 qui correspond à 37° 47′ 13.1″ N, 122° 23′ 58.84″ W.
      Tel que le nombre est formaté dans la langue du contenu. Utiliser {{formatnum:}}, pour formater un nombre en expression.
    • degrés/minutes ou degrés/minutes/secondes, par exemple 37|47.2183|-122|23.9807 ou 37|47|13.1|-122|23|58.84.
    • l'un ou l'autre, mais avec un sens spécifié par les lettres N/E/S/W :
      37.786971|N|122.399677|W
      37|47.2183|N|122|23.9807|W
      37|47|13.1|N|-122|23|58.84|W
Vous ne pouvez utiliser que N/E/S/W ou des valeurs négatives mais pas les deux en même temps.
  • le mot clé primary indique que ces coordonnées sont primaires (voir le Glossaire).
  • Les paramètres supplémentaires sont une combinaison des paramètres nommés suivants :
    • dim : taille approximative de l'objet.
    • scale : échelle de l'affichage de la carte pour cet objet, par exemple une valeur de 300 correspond à une échelle de 1:300e. Qui est converti en dim en interne en utilisant la formule dim = scale / 10. Si scale et dim sont utilisés, dim a la priorité.
    • globe, voir le Glossaire.
    • name : nom de ce point, maximum 255 octets (UTF-8).
    • region : ISO 3166-1 alpha-2 code du pays (par exemple US ou RU) ou un code ISO 3166-2 de région (par exemple US-FL ou RU-MOS). En interne ce paramètre est toujours capitalisé.
    • type : type d'objet avec ces coordonnées, peut être l'une des valeurs suivantes : country, satellite, state, adm1st, adm2nd, adm3rd, city, isle, mountain, river, waterbody, event, forest, glacier, airport, railwaystation, edu, pass, camera, landmark.
type description dimension
country (par exemple "type:country") 1 000 000
satellite satellites géostationnaires 1 000 000
adm1st Division administrative d'un pays au premier niveau (province, état), par exemple état des Etats Unis 1 000 000
adm2nd Unité administrative du pays de second niveau, par exemple un comté des États-Unis 30 000
adm3rd Unité administrative du pays de niveau trois 10 000
city(pop) villes, bourgs, villages, hameaux, banlieues, lotissements, quartiers et autres établissements de personnes y compris les zones non constituées en municipalités et (ou) abandonnées dont la population est connue
(la population facultative entre accolades est ignorée)
10 000
airport aéroports et bases aériennes 3 000
mountain sommets, chaînes de montagnes, collines, récifs submergés et montagnes 10 000
isle îles 10 000
waterbody baies, fjords, lacs, réservoirs, étangs, lochs, grands lacs, lagunes, estuaires, mers intérieures et chutes d'eau 10 000
forest forêts et domaines forestiers 5 000
river rivières, canaux, ruisseaux, torrents et cours d'eau y compris ceux qui coulent de temps en temps 10 000
glacier glaciers et calottes glaciaires 5 000
event événements et incidents ponctuels ou réguliers survenus à un endroit particulier, notamment les batailles, les tremblements de terre, les festivals et les naufrages. 5 000
edu écoles, collèges et universités 1 000
pass col de montagne 1 000
railwaystation gares, stations et zones de maintenance des vies ferrées et des trains, y compris les chemins de fer, les métros, les transports rapides, les métros souterrains, les chemins de fer aériens, etc. 1 000
landmark bâtiments (y compris les églises, les usines, les musées, les théâtres et les centrales électriques, mais à l'exclusion des écoles et des gares ferroviaires), les grottes, cimetières, sites culturels, failles géologiques, promontoires, intersections, mines, ranchs, routes, structures (y compris les antennes, les ponts, les châteaux, les barrages, les phares, les monuments et les stades), attractions touristiques, vallées et autres points d'intérêt 1 000
dimension par défaut : si type n'est pas utilisé ou si type n'est pas reconnu par cette extension 1 000
  • Paramètres GeoHack : une ou plusieurs paires dans le format paramètre:valeur, délimitées par des caractères de soulignement (_) ou des espaces (par exemple : dim:1000_type:city). Aucun espace n'est autorisé entre le paramètre et la virgule, ou entre la virgule et la valeur. Les paramètres sont les mêmes que ceux de paramètres supplémentaires ci-dessus. Si un paramètre existe à la fois dans les paramètres GeoHack et dans les paramètres supplémentaires, ces derniers ont toujours précédence. Cette entrée est nécessaire uniquement pour la compatibilité avec les modèles {{coord2}} existants - si votre wiki ne comporte qu'un seul modèle de coordonnées géographiques il vaut mieux ne pas utiliser du tout la ligne de paramètres GeoHack.


Exemples

Notez la manière dont les paramètres supplémentaires sont spécifiés :

{{#coordinates:primary|40.775114|-73.968802|type:landmark_region:US-NY|name=Loeb Central Park Boathouse}}

Inclusion dans les modèles

Conditions d’erreur

GeoData contrôle les données qu'il reçoit et évalue certaines conditions d'erreur.

Les conditions suivantes résultent dans des coordonnées rejetées directement et ajoutées à la catégorie de suivi (son nom est défini par MediaWiki:Geodata-broken-tags-category) :

  • Coordonnées hors limites :
{{#coordinates:56|04|N|190|00|E}}
{{#coordinates:76|61|03|N|37|25|30|W}} 
  • Mélanger les signes des coordonnées et les lettres d'hémisphère :
{{#coordinates:primary|-26|04|N|178|46|E}}
{{#coordinates:primary|26.16|N|-178.76|E}} 
  • Une ou plusieurs coordonnées primaires sur la page :
{{#coordinates:primary|26|04|N|178|46|E}}{{#coordinates:primary|26|04|N|178|46|E}}
  • Trop de coordonnées sur la page : par défaut 500, 2000 sur la WMF.

Les erreurs suivantes ne sont pas fatales par défaut :

  • Type de coordonnées non reconnu :
{{#coordinates:primary|26|04|N|178|46|E|type=New York}}
{{#coordinates:primary|26|04|N|178|46|E|type:village}}

API

GeoData dispose de deux modules d'API qui effectuent une recherche autour d'un point donné et de coordonnées pour un ou plusieurs articles donnés.

list=geosearch

Cherche les articles au voisinage du point fourni (déterminé soit par les coordonnées, par le périmètre de délimitation ou par le nom de l'article).

Paramètres :

Name Description Default
gscoord Coordonnées pour la recherche du voisinage : deux valeurs à virgule (point) flottante séparées par une barre verticale (|)
gsradius Rayon de la recherche (de 10 à 10000). Ce paramètre est obligatoire si gscoord est utilisé.
gsbbox Périmètre qui délimite la recherche : coordonnées des coins dans l'ordre : supérieur, gauche, bas, droit, séparées par une barre verticale (|).
gspage Titre de la page au voisinage de laquelle il faut chercher.
gsmaxdim Restreindre la recherche aux objets ne dépassant pas cette valeur, en mètres
gslimit Nombre maximum de pages à renvoyer. Pas plus de 500 valeurs autorisées (5000 pour les robots). 10
gsglobe Globe sur lequel faire la recherche. earth
gsnamespace Un ou plusieurs espaces de noms dans lesquels faire la recherche. espace de noms principal
gsprop Quelles propriétés de coordonnées supplémentaires sont à renvoyer. Valeurs (séparées par |) : type, nom, pays, région.
gsprimary Indique s'il faut renvoyer uniquement les coordonnées primaires (primary), secondaires (secondary) ou les deux (all). primary

Exemple :

Résultats de l'API MediaWiki
{
    "batchcomplete": "",
    "query": {
        "geosearch": [
            {
                "pageid": 9292891,
                "ns": 0,
                "title": "140 New Montgomery",
                "lat": 37.7868194444444,
                "lon": -122.399905555556,
                "dist": 26.2,
                "primary": ""
            },
            {
                "pageid": 40377676,
                "ns": 0,
                "title": "New Montgomery Street",
                "lat": 37.78729,
                "lon": -122.40033,
                "dist": 67.5,
                "primary": ""
            },
            {
                "pageid": 1544800,
                "ns": 0,
                "title": "Cartoon Art Museum",
                "lat": 37.787088,
                "lon": -122.40094,
                "dist": 111.7,
                "primary": ""
            },
            {
                "pageid": 2183989,
                "ns": 0,
                "title": "Academy of Art University",
                "lat": 37.78785,
                "lon": -122.40065,
                "dist": 129.9,
                "primary": ""
            },
            {
                "pageid": 24801569,
                "ns": 0,
                "title": "SPUR (San Francisco organization)",
                "lat": 37.78716,
                "lon": -122.4012,
                "dist": 135.5,
                "primary": ""
            },
            {
                "pageid": 9297181,
                "ns": 0,
                "title": "101 Second Street",
                "lat": 37.788139,
                "lon": -122.399056,
                "dist": 140.9,
                "primary": ""
            },
            {
                "pageid": 40413203,
                "ns": 0,
                "title": "222 Second Street",
                "lat": 37.78635,
                "lon": -122.39825,
                "dist": 143.2,
                "primary": ""
            },
            {
                "pageid": 20004112,
                "ns": 0,
                "title": "The Montgomery (San Francisco)",
                "lat": 37.78762,
                "lon": -122.40112,
                "dist": 145.9,
                "primary": ""
            },
            {
                "pageid": 18679821,
                "ns": 0,
                "title": "California Historical Society",
                "lat": 37.78684444444444,
                "lon": -122.40148055555557,
                "dist": 159.1,
                "primary": ""
            },
            {
                "pageid": 71882190,
                "ns": 0,
                "title": "St. Regis Museum Tower",
                "lat": 37.7863,
                "lon": -122.4013,
                "dist": 161,
                "primary": ""
            }
        ]
    }
}

prop=coordinates

Renvoie les coordonnées de la ou des pages indiquées

Paramètres :

Name Description Default
colimit Nombre de coordonnées à renvoyer.
cocontinue A utiliser pour continuer quand d'autres résultats sont en attente.
coprop Quelles propriétés de coordonnées supplémentaires sont à renvoyer. Valeurs (séparées par |) : type, nom, pays, région.
coprimary Indique s'il faut renvoyer uniquement les coordonnées primaires (primary), secondaires (secondary) ou les deux (all). primary

Exemples :

Résultats de l'API MediaWiki
{
    "batchcomplete": "",
    "query": {
        "pages": {
            "18618509": {
                "pageid": 18618509,
                "ns": 0,
                "title": "Wikimedia Foundation",
                "coordinates": [
                    {
                        "lat": 37.78916667,
                        "lon": -122.40333333,
                        "primary": "",
                        "globe": "earth"
                    }
                ]
            }
        }
    }
}
Résultats de l'API MediaWiki
{
    "batchcomplete": "",
    "query": {
        "pages": {
            "18618509": {
                "pageid": 18618509,
                "ns": 0,
                "title": "Wikimedia Foundation",
                "coordinates": [
                    {
                        "lat": 37.78916667,
                        "lon": -122.40333333,
                        "primary": "",
                        "type": "landmark",
                        "dim": "1000"
                    }
                ]
            }
        }
    }
}

Enumérer les pages avec ou sans les coordonnées

Cette fonctionnalité n'est pas encore activée sur les sites Wikimedia.

GeoData étend deux modules API du noyau : list=allpages et list=categorymembers . Les modules étendus sont geopages et geopagesincategory. Ajoute deux paramètres mutuellement exclus, withcoordinates et withoutcoordinates.

Configuration

Paramètres Type Valeur par défaut Action
$wgMaxGeoSearchRadius entier 10000 Rayon maximal pour les recherches géospatiales, en mètres. Réduire cette valeur réduit aussi la charge du serveur
$wgMaxCoordinatesPerPage entier 500 Nombre maximum de coordonnées par page, -1 signifie qu'il n'y a pas de limite
$wgTypeToDim tableau Tableau long, voir les sources table de conversion type --> dimension
$wgDefaultDim tableau 1000 Valeur par défaut quand la dimension est inconnue
$wgGlobes tableau Tableau long, voir les sources Définit les paramètres de chaque globe
$wgGeoDataWarningLevel tableau
array(
	'unknown type' => 'none',
	'unknown globe' => 'none',
	'invalid region' => 'none',
)
Contrôle ce que GeoData doit faire lorsqu'il rencontre certains problèmes. Type de réaction :
  • warn – Ajouter une catégorie de suivi
  • fail – Considérez que la balise est non valide, affichez le message et ajoutez la catégorie de suivi
  • none – Ne fait rien
$wgGeoDataIndexGranularity entier 10 Combien d'unités entières à utiliser par degré avec la recherche uniquement en base de données. Impacte les performances. Exécutez updateIndexGranularity.php après avoir modifié ce paramètre.
$wgGeoDataBackend chaîne 'db' Serveurs à utiliser pour les recherches spatiales : db ou elastic. Notez que si vous envisagez de le modifier, faites-le avant de créer les tables de la base de données.


Voir aussi