Detects country by a given geometry.
Good for offline usage.
npm install country-locator
findCountryByCoordinate
accepts latitude & longitude, or a point as an array,
and returns country info with two fields:
- name: the common name for the country
- code: three letters iso code of the country (ISO3166-1-Alpha-3)
import {findCountryByCoordinate} from "country-locator";
const countryInfo = findCountryByCoordinate(51.500760, -0.125168);
console.log(countryInfo?.name); // United Kingdom
console.log(countryInfo?.code); // GBR
You can also call it as a point - an array of [x, y]
PAY ATTENTION - x == longitude
and y == latitude
const countryInfo = findCountryByCoordinate([-0.125168, 51.500760]);
console.log(countryInfo?.name); // United Kingdom
console.log(countryInfo?.code); // GBR
findCountriesByPolygon
accepts a polygon (array of points arrays)
and returns an array of countries that intersect with a given polygon
import {findCountriesByPolygon} from "country-locator";
const countriesInfo = findCountriesByPolygon([
[-131.484375, 49.781264058178344],
[-137.548828125, 44.15068115978094],
[-128.935546875, 26.194876675795218],
[-96.240234375, 22.755920681486405],
[-72.50976562499999, 26.43122806450644],
[-59.501953125, 42.48830197960227],
[-62.314453125, 48.3416461723746],
[-76.2890625, 50.3454604086048],
[-109.77539062499999, 53.173119202640635],
[-131.484375, 49.781264058178344]
]);
console.log(countriesInfo);
// [
// { name: 'The Bahamas', code: 'BHS' },
// { name: 'Canada', code: 'CAN' },
// { name: 'Mexico', code: 'MEX' },
// { name: 'United States of America', code: 'USA' }
// ]
npm run test
countries.geojson
comes from geo-countries.
Country Locator is MIT licensed.