pelias / sorting

MIT License
2 stars 2 forks source link

This repository is part of the Pelias project. Pelias is an open-source, open-data geocoder built by Mapzen that also powers Mapzen Search. Our official user documentation is here.

Pelias Result Sorting

Greenkeeper badge

Gitter Chat

Overview

Module that sorts for ambiguous Pelias search and geocoding results

Installation

$ npm install pelias-sorting

NPM

NPM Module

The pelias-sorting npm module can be found here:

https://npmjs.org/package/pelias-sorting

Resolving ambiguities

The list presented here is used to resolve ambiguities in Pelias. For example, there's only one place named Truth or Consequences so there are no ambiguities to sort. Similarly, Saint Petersburg, Russia is fully-qualified and unambiguous. However, "Lancaster" can be interpreted as any of:

Without additional information such as state to narrow down this list, Pelias sorts these ambiguities according to what the user is more likely referring to. According to the ordering rules below, the input "Lancaster" without focus.point parameters would return Lancaster, California since it's the most populous of the mid-sized cities. However, if focus.point.lat=54.232&focus.point.lon=-6.721 (roughly the center of Great Britain) was supplied for the same query, then Lancaster, England would be returned first.

Ordering Rules

Unless otherwise specified, ties between two results at the same layer are broken using population values with higher population results returned first.

  1. very large city
  2. continent
    • Continent names are so well known that users looking for some more granular are accustomed to adding additional qualifiers.
    • Examples:
      1. Asia
      2. Antarctica
  3. country
    • These names are so well known that users looking for some more granular are accustomed to adding additional qualifiers. For example, Luxembourg the country contains a city named Luxembourg but users entering Luxembourg without additional qualification are normally looking for the country.
    • Examples:
      1. Canada
      2. Laos
  4. dependency
    • These names are so well known that users looking for some more granular are accustomed to adding additional qualifiers
    • Examples:
      1. Puerto Rico
      2. Gibraltar
  5. large city
    • population between 500,000 and 4,000,000
    • Ties among mid-size cities are broken by preferring those closer to focus.point or greater population if not supplied.
    • Examples:
      1. San Francisco, California
      2. Marseilles, France
  6. macroregion
  7. region
  8. borough
  9. very popular neighbourhood - popularity >= 10,000
  10. mid-size city
    • population between 5,000 and 500,000
    • Ties among mid-size cities are broken by preferring those closer to focus.point or greater population if not supplied.
    • Examples:
      1. Socorro, New Mexico
      2. Strasbourg, France
  11. macrocounty
    • macrocounty results are ranked below medium cities because they typically contain a city of the same name that users are normally interested in
    • Examples:
      1. Perpignan, France
      2. Stuttgart, Germany
  12. county
  13. macrohood
  14. popular neighbourhood - popularity between 1,000 and 10,000
  15. small city - population < 5,000
  16. non-popular neighbourhood - popularity < 1,000

Regarding neighbourhoods, Pelias has no qualitative stance on what the term "popularity" means.