Skip to content

pelias/sorting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  • 2 neighbourhoods
  • 13 cities (in 2 countries)
  • 4 counties

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
  1. 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
  1. 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
  1. 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
  1. 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
  1. macroregion
  1. region
  1. borough
  1. very popular neighbourhood - popularity >= 10,000
  1. 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
  1. 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
  1. county
  1. macrohood
  1. popular neighbourhood - popularity between 1,000 and 10,000
  1. small city - population < 5,000
  1. non-popular neighbourhood - popularity < 1,000

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