Giter VIP home page Giter VIP logo

geografis's Introduction

Geografis

Sebuah modul Node.js yang mengandung data kode wilayah desa/kelurahan, kecamatan, kabupaten/kota, provinsi, kode pos, koordinat, elevasi, dan geometri area seluruh Indonesia. Data yang terdapat dalam repository ini sesuai dengan Peraturan Menteri Dalam Negeri No. 72 Tahun 2019 dan Peraturan Menteri Dalam Negeri No. 146.1-4717 Tahun 2020.

npm version Downloads License MIT

Instalasi

Anda dapat menggunakan modul ini pada lingkungan Node.js (tidak untuk browser) dengan cara sebagai berikut:

npm install geografis

Jika Anda menggunakan Yarn:

yarn add geografis

Struktur Data

Setiap entri mengandung data yang terdiri atas nama kelurahan/desa, kecamatan, kabupaten/kota, provinsi, latitude, longitude, elevasi, kode pos, geometri (GeoJSON, beberapa tidak tersedia) dan Kode Wilayah. Pustaka ini mengandung 83,449 jumlah entri. Berikut ini adalah contoh keluaran data:

{
  "code": "31.71.01.1001",
  "postal": 10110,
  "slug": "dki-jakarta/kota-administrasi-jakarta-pusat/gambir/gambir",
  "province": "DKI Jakarta",
  "city": "Kota Administrasi Jakarta Pusat",
  "district": "Gambir",
  "village": "Gambir",
  "latitude": -6.176262870636918,
  "longitude": 106.82932428386471,
  "elevation": 5,
  "geometry": true
},
Field Keterangan
code Kode wilayah
postal Kode pos dari wilayah tersebut
slug Slug untuk wilayah tersebut
province Nama Provinsi
city Nama Kota/Kabupaten
district Nama Kecamatan
village Nama Desa/Kelurahan
latitude Latitude dari wilayah
longitude Longitude dari wilayah
elevation Elevasi wilayah dalam meter
geometry Apakah wilayah memiliki file geometri (poligon)

Penggunaan

⚙️ Fungsi geografis.dump()

Mendapatkan semua data kelurahan/desa dari database. Penggunaan:

const geografis = require('geografis');
const dump = geografis.dump();
console.log(dump)

⚙️ Fungsi geografis.search(query, limit, offset)

Mencari kode wilayah, kode pos, nama desa/kelurahan, kecamatan, dan kota menggunakan elasticlunr.js (sedikit berat). Penggunaan:

const geografis = require('geografis');
const query = "ciumbuleuit bandung"
const search = geografis.search(query, 10, 0);
console.log(search)

Contoh keluaran:

{
  "count": 1,
  "limit": 10,
  "offset": 0,
  "data": [
    {
      "code": "31.71.01.1001",
      "postal": 10110,
      "slug": "dki-jakarta/kota-administrasi-jakarta-pusat/gambir/gambir",
      "province": "DKI Jakarta",
      "city": "Kota Administrasi Jakarta Pusat",
      "district": "Gambir",
      "village": "Gambir",
      "latitude": -6.176262870636918,
      "longitude": 106.82932428386471,
      "elevation": 5,
      "geometry": true
    }
  ]
}

⚙️ Fungsi geografis.getProvinces()

Mendapatkan list nama-nama provinsi. Penggunaan:

const geografis = require('geografis'); 
const provinces = geografis.getProvinces();
console.log(provinces)

⚙️ Fungsi geografis.getProvince(code)

Mendapatkan detil provinsi berdasarkan kode wilayah (parameter code). Penggunaan:

const geografis = require('geografis'); 
const province = geografis.getProvince('32');
console.log(provinces)

⚙️ Fungsi geografis.getProvinceBySlug(slug)

Mendapatkan detil provinsi berdasarkan slug (parameter slug). Penggunaan:

const geografis = require('geografis'); 
const province = geografis.getProvinceBySlug('dki-jakarta');
console.log(provinces)

⚙️ Fungsi geografis.getCity(code)

Mendapatkan detil kota/kabupaten berdasarkan kode wilayah (parameter code). Penggunaan:

const geografis = require('geografis'); 
const city = geografis.getCity('31.71');
console.log(city)

⚙️ Fungsi geografis.getCityBySlug(slug)

Mendapatkan detil provinsi berdasarkan slug (parameter slug). Penggunaan:

const geografis = require('geografis'); 
const city = geografis.getCityBySlug('jawa-barat/kota-bandung');
console.log(city)

⚙️ Fungsi geografis.getDistrict(code)

Mendapatkan detil kecamatan berdasarkan kode wilayah (parameter code). Penggunaan:

const geografis = require('geografis'); 
const district = geografis.getDistrict('31.71.01');
console.log(district)

⚙️ Fungsi geografis.getDistrictBySlug(slug)

Mendapatkan detil kecamatan berdasarkan slug (parameter slug). Penggunaan:

const geografis = require('geografis'); 
const district = geografis.getDistrictBySlug('jawa-barat/kota-bandung/coblong');
console.log(district)

⚙️ Fungsi geografis.getVillage(code)

Mendapatkan detil desa/kelurahan berdasarkan kode wilayah (parameter code). Penggunaan:

const geografis = require('geografis'); 
const village = geografis.getVillage('31.71.01.1001');
console.log(village)

⚙️ Fungsi geografis.getVillageBySlug(slug)

Mendapatkan detil desa/kelurahan berdasarkan slug (parameter slug). Penggunaan:

const geografis = require('geografis'); 
const village = geografis.getVillageBySlug('jawa-barat/kota-bandung/cidadap/hegarmanah');
console.log(village)

⚙️ Fungsi geografis.getVillageByPostalCode(postalCode)

Mendapatkan detil desa/kelurahan berdasarkan slug (parameter postalCode). Penggunaan:

const geografis = require('geografis'); 
const village = geografis.getVillageByPostalCode(40142);
console.log(village)

⚙️ Fungsi geografis.getNearest(latitude, longitude)

Mendapatkan desa/kelurahan terdekat (parameter latitude, longitude). Berguna untuk mendeteksi area. Penggunaan:

const geografis = require('geografis'); 
const village = geografis.getNearest(-6.8822007,107.6142733);
console.log(village)

⚙️ Fungsi geografis.getGeometry(code)

Untuk menggunakan fungsi ini, Anda harus mengunduh data geojson yang terdapat di repository ini. Simpan di dalam direktori: project_anda / data / geojson. Penggunaan:

const geografis = require('geografis'); 
const json = geografis.getGeometry('32.73.08.1002');
console.log(json)

Test

Unduh modul ini dan jalankan:

yarn test

Berkontribusi

Gunakan fitur Issues jika ada masalah, ada pertanyaan, atau kirimkan Pull Request jika ingin berkontribusi. Anda juga dapat mentranslasikan pustaka kode ini ke bahasa pemrograman yang lain.

Lisensi

SUMBER KODE YANG TERDAPAT DALAM REPOSITORY INI BERLISENSI MIT, TIDAK TERDAPAT JAMINAN DARI PEMBUAT KODE UNTUK MEMASTIKAN KEAKURATAN, KUALITAS, DAN KETERSEDIAAN. DIMOHON TIDAK MEMPERJUALBELIKAN DATA YANG TERDAPAT DALAM REPOSITORY INI UNTUK KEPENTINGAN PRIBADI DAN GUNAKANLAH DENGAN BIJAK.

Sumber kode dibuat untuk pembelajaran karena sulitnya memperoleh informasi area yang komprehensif serta akurat di Indonesia yang terbuka dan bebas digunakan.

Sumber

Data diperoleh dan telah diproses secara otomatis dan manual dari berbagai sumber.

  1. Wilayah
  2. Kebijakan Satu Peta
  3. Open Elevation
  4. OSM
  5. Nomor

Star repository ini jika bermanfaat ya ges ya 🇮🇩

geografis's People

Contributors

drizki avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

geografis's Issues

Ada beberapa desa yang memiliki kode pos yang sama

Ada beberapa desa yang memiliki kode pos yang sama.
Desa di kecamatan Ujungjaya memiliki kode pos 45383 adalah: Ujungjaya, Palabuan, Palasari, Keboncau, Sakurjaya, Kudangwangi, Sukamulya, Cipelang, dan Cibuluh.

Saya lihat field code itu unique, jadi untuk "ref" bisa menggunakan field "code" dari pada field "postal". Untuk sementara saya melakukan perubahan seperti dibawah ini.

`
/src/main.js

    // const elastic = elasticlunr(function () {
    //     fields.forEach(field => this.addField(field)); 
    //     this.setRef("postal");
    // });

   const elastic = elasticlunr(function () {
        fields.forEach(field => this.addField(field)); 
        this.setRef("code");
    });

`

And

`
/src/main.js

    // search.forEach(item => results.push(this.data.find(i => i.postal === Number(item.ref))));
    search.forEach(item => results.push(this.data.find(i => i.code === item.ref)));

`

Typescript?

bikin ES6 sama Typescript support dong bang.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.