Extension: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 |
|
|
| 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é
GeoDatadans votre dossierextensions/.
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 à LocalSettings.php, à la fin du chargement de GeoData.
$wgGeoDataBackend = 'elastic';
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
kmpuisse ê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.399677qui 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.
- Tel que le nombre est formaté dans la langue du contenu. Utiliser
- degrés/minutes ou degrés/minutes/secondes, par exemple
37|47.2183|-122|23.9807ou37|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|W37|47.2183|N|122|23.9807|W37|47|13.1|N|-122|23|58.84|W
- valeur d'entrée directe signée en degrés, par exemple
- 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 :
- Chercher au voisinage du point de coordonnées 37° 47′ 13.1″ N, 122° 23′ 58.84″ W :
| 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 :
- Obtenir une liste de coordonnées de l'article de la Fondation Wikimedia :
| 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 plus précis (requête utilisée par Pywikibot) :
| 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
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 :
|
$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. |
| Cette extension est utilisée par au moins un des projets Wikimédia. Cela signifie probablement que l’extension est assez stable et fonctionnelle pour être utilisée sur des sites à fort trafic. Recherchez le nom de cette extension dans le CommonSettings.php de Wikimédia et dans le fichier de configuration InitialiseSettings.php pour situer les endroits où elle est installée. Une liste complète des extensions installées sur un Wiki donné peut être visualisée sur la page Special:Version de ce wiki. |
Voir aussi
- Extension:Maps – Extension pour visualiser et travailler avec les informations géographiques.
- Semantic Result Formats – Différents formats d'affichage pour Extension:Semantic MediaWiki
- Extension:Kartographer – Permet d'afficher GeoJSON (comme le font les versions récentes de Maps)
- Extension:MultiMaps – Permet aux utilisateurs d'afficher des cartes et des coordonnées à l'aide de multiples services de cartographie
- Extension:VisualData/Geolocation – Permet d'afficher les cartes Maptiler dans des formulaires avec des coordonnées inverses et des marques déplaçables
| Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : |
- Stable extensions/fr
- API extensions/fr
- Parser function extensions/fr
- ArticleDeleteComplete extensions/fr
- CirrusSearchAddQueryFeatures extensions/fr
- FileUpload extensions/fr
- LinksUpdateComplete extensions/fr
- LoadExtensionSchemaUpdates extensions/fr
- OutputPageParserOutput extensions/fr
- ParserFirstCallInit extensions/fr
- SearchDataForIndex extensions/fr
- SearchDataForIndex2 extensions/fr
- SearchIndexFields extensions/fr
- WTFPL licensed extensions/fr
- Extensions in Wikimedia version control/fr
- All extensions/fr
- Extensions used on Wikimedia/fr
- Extensions included in Miraheze/fr
- Extensions included in MyWikis/fr
- Extensions included in ProWiki/fr
