1.0.2 • Published 10 months ago

browser-reverse-geocoder v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

browser-reverse-geocoder

A lightweight, browser-based reverse geocoding library that converts geographic coordinates (latitude and longitude) into human-readable addresses. This library uses GeoJSON data for geocoding, making it flexible and customizable for various regions and address formats.

Features

  • Pure JavaScript implementation, works entirely in the browser
  • Uses efficient spatial indexing for fast lookups
  • Supports custom GeoJSON datasets
  • Configurable address formatting
  • No external API calls required, ensuring privacy and offline capability

Ideal for web applications that need to perform reverse geocoding without relying on external services. Simply provide your own GeoJSON data, and browser-reverse-geocoder will handle the rest!

Installation

npm install browser-reverse-geocoder

Usage

import BrowserReverseGeocoder from 'browser-reverse-geocoder';

const geocoder = new BrowserReverseGeocoder();
await geocoder.init('path/to/your/geojson/file.json');

const address = geocoder.reverseGeocode(longitude, latitude);
console.log(address);

Example

import BrowserReverseGeocoder from 'browser-reverse-geocoder';

const geocoder = new BrowserReverseGeocoder();
await geocoder.init('https://woojubb.github.io/korea-district-geo-converter/dist/districts.kr.json'); // sample district data from https://github.com/woojubb/korea-district-geo-converter

const address = geocoder.reverseGeocode(longitude, latitude);
console.log(address);

GeoJSON Data Format Example

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "BASE_DATE": "20230701",
        "ADM_NM": "가경동",
        "ADM_CD": "33043540",
        "provinceCode": 33,
        "provinceName": "충청북도",
        "districtCode": "043",
        "districtName": "청주시 흥덕구",
        "townCode": "540",
        "townName": "가경동",
        "code": "33043540"
      },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [127.4262, 36.611363],
            [127.423469, 36.618088],
            [127.42674, 36.623778],
            [127.430923, 36.623946],
            [127.428373, 36.628201],
            [127.432226, 36.632508],
            [127.438588, 36.632792],
            [127.444721, 36.620543],
            [127.444652, 36.616353],
            [127.439834, 36.612288],
            [127.432166, 36.609233],
            [127.426964, 36.609848],
            [127.4262, 36.611363]
          ]
        ]
      }
    },
    {
      "type": "Feature",
      "properties": {
        "BASE_DATE": "20230701",
        "ADM_NM": "가곡동",
        "ADM_CD": "38080550",
        "provinceCode": 38,
        "provinceName": "경상남도",
        "districtCode": "080",
        "districtName": "밀양시",
        "townCode": "550",
        "townName": "가곡동",
        "code": "38080550"
      },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [128.796795, 35.482],
            [128.803182, 35.474852],
            [128.80228, 35.473018],
            [128.798743, 35.473408],
            [128.794877, 35.471113],
            [128.793429, 35.468272],
            [128.794613, 35.464561],
            [128.79195, 35.46027],
            [128.785707, 35.460265],
            [128.782834, 35.466868],
            [128.780282, 35.468931],
            [128.767829, 35.468914],
            [128.75684, 35.474505],
            [128.760006, 35.476792],
            [128.764424, 35.485343],
            [128.770225, 35.481091],
            [128.780892, 35.483359],
            [128.781997, 35.481956],
            [128.792752, 35.485766],
            [128.796795, 35.482]
          ]
        ]
      }
    },
    {
      "type": "Feature",
      "properties": {
        "BASE_DATE": "20230701",
        "ADM_NM": "가곡면",
        "ADM_CD": "32070350",
        "provinceCode": 32,
        "provinceName": "강원특별자치도",
        "districtCode": "070",
        "districtName": "삼척시",
        "townCode": "350",
        "townName": "가곡면",
        "code": "32070350"
      },
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [129.182561, 37.202145],
            [129.190173, 37.198119],
            [129.193249, 37.191528],
            [129.198483, 37.186729],
            [129.210437, 37.187408],
            [129.213875, 37.185347],
            [129.219458, 37.186998],
            [129.222436, 37.186247],
            [129.228608, 37.173104],
            [129.227882, 37.170512],
            [129.224768, 37.168864],
            [129.22422, 37.160911]
          ]
        ]
      }
    }
  ]
}

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago