Géocodage sur une forme au lieu d'un point
Le projet sur lequel je travaille actuellement est Find-A-Record . Nous géocodons les collections de documents généalogiques et les stockons dans un index spatial (parcourez notre blog si vous voulez en savoir plus). Les recherches sont basées sur une forme. Nous renvoyons les collections qui se croisent ou sont contenues dans la zone de recherche.
Pendant les premiers stades de développement, nous avons utilisé des noms géographiques pour géocoder des collections jusqu'à un certain point. Cela fonctionne bien pour les collections associées à des niveaux administratifs inférieurs tels que les villes, les villages et les villages. Cependant, cela tombe vraiment en panne lorsque vous obtenez le niveau du comté, de l'état et du pays.
Le recensement américain de 1940 est associé aux États-Unis et se verrait attribuer un point dans le nord du Kansas. Toutes les requêtes aux États-Unis qui ne sont pas proches de ce point ne renverront pas le recensement américain de 1940.
Pour résoudre ce problème, nous devons géocoder les collections avec une forme au lieu d'un point.
OSM
OpenStreetMaps possède les données dont nous avons besoin, mais il est extrêmement difficile de les extraire. La hiérarchie administrative n'est pas explicitement stockée. Nominatim est utilisé pour résoudre ce problème pour OSM une recherche Nominatim ne renvoie que des fonctionnalités. Une requête pour Knighton on Teme renvoie donc deux arrêts de bus mais pas la relation de frontière administrative.
L' API Overpass semblait prometteuse mais elle ne peut pas faire de correspondances de chaînes floues. Le viaduc ne peut faire que des correspondances exactes ou regex. Nous pourrions utiliser Overpass s'il y avait un moyen simple de standardiser les noms de lieux. En d'autres termes, si l'OSM nous a fourni un moyen de standardiser "Knighton on Teme, Worcestershire, Angleterre" à "Knighton on Teme CP, Malvern Hills, Worcestershire, West Midlands, Angleterre, Royaume-Uni" selon la hiérarchie OSM, alors chaîne floue l'appariement ne serait pas nécessaire.
Sommaire
Ce dont nous avons besoin, c'est d'un service qui nous permette d'effectuer des recherches de chaînes floues pour un lieu (ou niveau administratif) et de récupérer ses limites.
Nous reconnaissons qu'il sera difficile d'obtenir des données sur les limites pour le monde entier. Heureusement, nous n'aurons probablement pas besoin de bientôt. Nous n'avons besoin de données que pour les régions du monde où existent des documents généalogiques et où les généalogistes font des recherches.
Il semble que nous devrons créer notre propre service qui indexe OSM de manière à nous permettre d'interroger les limites administratives. Mais nous préférerions vraiment ne pas le faire. Existe-t-il un autre moyen de récupérer ces données avec les services existants?