@p-j/geocodejson-ban
TypeScript icon, indicating that this package has built-in type declarations

1.3.3 • Public • Published

GeocodeJSON

GeocodeJSON packages are a collection of small utility to work with geocoding API such as Google Geocoding API, HERE Geocoding API, Opencage, etc... As well as self hosted solution like Mimirsbrunn.

These packages provide a simple inteface for geocoding addresses exposing the underlying APIs filtering capabilities while returning all response in a standard format: GeocodeJSON, a GeoJSON extension.

These packages leverage cross-fetch to work on both backend & frontend

lerna lerna codecov Build Status FOSSA Status

@p-j/geocodejson-ban

version changelog

Geocode & format to GeocodeJSON using the French "Base Adresse Nationale" API

Usage

import { geocode, parse, getFetchArgs } from '@p-j/geocodejson-ban'

// if you want to use your own fetch wrapper / http library
const { url, options } = getFetchArgs({
  q: 'Place de la République, Paris, France',
  limit: 1,
  postcode: '75011',
})
// url = 'https://api-adresse.data.gouv.fr/search?limit=1&postcode=75011&q=Place+de+la+R%C3%A9publique,+Paris,+France'
// options = { method: 'GET' }

// using cross-fetch; also adds the "query" property to the response
const rawResponseFromBANApi = await geocode({
  address: 'Place de la République, Paris, France',
  limit: 1,
})
// {
//   type: 'FeatureCollection',
//   version: 'draft',
//   attribution: 'BAN',
//   licence: 'ETALAB-2.0',
//   query: 'Place de la République, Paris, France',
//   features: [
//     {
//       type: 'Feature',
//       geometry: {
//         type: 'Point',
//         coordinates: [2.365475, 48.867039],
//       },
//       properties: {
//         label: 'Place de la République 75011 Paris',
//         score: 0.9670254545454545,
//         id: '75111_8159',
//         name: 'Place de la République',
//         postcode: '75011',
//         citycode: '75111',
//         x: 653452.35,
//         y: 6863188.08,
//         city: 'Paris',
//         district: 'Paris 11e Arrondissement',
//         context: '75, Paris, Île-de-France',
//         type: 'street',
//         importance: 0.63728,
//       },
//     },
//   ],
//   limit: 1,
// }

const geocodeJSONFormatedResults = parse(rawResponseFromBANApi)
// {
//   type: 'FeatureCollection',
//   geocoding: {
//     version: 'draft',
//     attribution: 'BAN',
//     licence: 'ETALAB-2.0',
//     query: 'place de la république paris',
//   },
//   features: [
//     {
//       type: 'Feature',
//       geometry: {
//         type: 'Point',
//         coordinates: [2.365475, 48.867039],
//       },
//       properties: {
//         geocoding: {
//           label: 'Place de la République 75011 Paris',
//           score: 0.9670254545454545,
//           id: '75111_8159',
//           name: 'Place de la République',
//           postcode: '75011',
//           citycode: '75111',
//           x: 653452.35,
//           y: 6863188.08,
//           city: 'Paris',
//           district: 'Paris 11e Arrondissement',
//           context: '75, Paris, Île-de-France',
//           type: 'street',
//           importance: 0.63728,
//         },
//       },
//     },
//   ],
//   limit: 1,
// }

Readme

Keywords

none

Package Sidebar

Install

npm i @p-j/geocodejson-ban

Weekly Downloads

1,319

Version

1.3.3

License

MIT

Unpacked Size

33.9 kB

Total Files

20

Last publish

Collaborators

  • jparker