muratgozel / turkey-neighbourhoods

Always up to date names of cities, districts and neighbourhoods of Turkey + city distances. / Her zaman güncel, Türkiye şehir, posta kodu, plaka kodu, ilçe ve mahalle listesi + şehirlerarası mesafeler.
MIT License
56 stars 9 forks source link
turkey turkey-cities turkey-districts turkey-neighbourhoods turkey-post-codes turkiye-il-ilce-listesi turkiye-mahalle-listesi

turkey-neighbourhoods

Always up to date names of cities, districts and neighbourhoods of Turkey + city distances.

In Turkish: Her zaman güncel, Türkiye şehir, posta kodu, plaka kodu, ilçe ve mahalle listesi + şehirlerarası mesafeler.

Install

npm i turkey-neighbourhoods

or inject with script tag:

<script type="module" src="https://cdn.jsdelivr.net/npm/turkey-neighbourhoods@4/dist/index.js"></script>

Usage

The package contains large amount of data which is not suitable for browser environment. Benefit from tree-shaking might work if you are interested in small chunks of it.

There are no states in Turkey. The data structured as cities (city code and name), districts (name) and neighbourhoods (name). City codes are two digit text and they also known as plate number.

There are couple of methods to interact with the data:

import {
    isCityCode,
    isCityName,
    isPostalCode,
    getCityNames,
    getCityCodes,
    getCities,
    getPostalCodes,
    getDistrictsByCityCode,
    getDistrictsOfEachCity,
    getDistrictsAndNeighbourhoodsByCityCode,
    getDistrictsAndNeighbourhoodsOfEachCity,
    getNeighbourhoodsByCityCodeAndDistrict,
    findDistance,
    findClosestCities
} from 'turkey-neighbourhoods'

isCityCode('01') // true
isCityCode('82') // false
isCityCode(1) // false

isCityName('İstanbul') // true
isCityName('istanbul') // false, because city names are always title cased

getCityCodes() // ["01", "02", ... "67"] sorted by name, 81 in total
getCityNames() // ["Adana", "Adıyaman", ... "Zonguldak"]
getCities() // [{code: "01", name: "Adana"}, ... {code: "67", name: "Zonguldak"}]

getPostalCodes() // ["01720", ... "67100"]
isPostalCode('01720') // true

getDistrictsByCityCode('16') // ["Büyükorhan", "Gemlik", "Gürsu", ... "Yıldırım"]
getDistrictsOfEachCity() // {"16": ["Nilüfer", ...]}
getDistrictsAndNeighbourhoodsByCityCode('16') // {"Büyükorhan": ["Akçasaz Mah", "Aktaş Mah", ...], "Gemlik": ["Adliye Mah", ...], ...}
getDistrictsAndNeighbourhoodsOfEachCity() // {"16": {"Gemlik": ["Adliye Mah", ...] ...} ...}
getNeighbourhoodsByCityCodeAndDistrict("16", "Nilüfer") // ["Alaaddinbey Mah", "Ataevler Mah" ...]

// find distance between two cities in kilometers based on the roads
findDistance('41', '16') // 131

// find closest cities to a particular city, 200 km far at most and limit results to three
findClosestCities('16', 200, 3) // [{code: '77', distance: 69}, ...]

Have a look at the tests, types and source for more info.

Keeping Data Up To Date

Data updates published regularly as minor releases so check regularly for updates. The data source updates it every month.

Contributing

If you're interested in contributing, read the CONTRIBUTING.md first, please.


Version management of this repository done by releaser 🚀


Thanks for watching 🐬

Support me on Patreon