// geo 'https://raw.githubusercontent.com/88250/city-geo/master/data.json'
|
// provinces 'https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/provinces.json'
|
// cities 'https://github.com/modood/Administrative-divisions-of-China/blob/master/dist/cities.json'
|
|
const fs = require('fs')
|
const pinyin = require('js-pinyin')
|
|
let geo = require('./assets/geo')
|
let provinces = require('./assets/provinces')
|
let cities = require('./assets/cities')
|
|
// 省直辖县级行政区划
|
let areas = ['4190', '4290', '4690', '6590']
|
cities = cities.filter(city => !areas.includes(city.code))
|
|
// 直辖市
|
let aCity = ['1101', '1201', '3101', '5001']
|
|
cities.forEach(city => {
|
city.province = provinces.find(province => province.code === city.provinceCode).name
|
if (aCity.includes(city.code)) {
|
city.name = city.province
|
}
|
let g = geo.find(g => g.city === city.name || g.province === city.name)
|
city.lat = g.lat
|
city.lng = g.lng
|
if (city.name.lastIndexOf('市') === city.name.length - 1) {
|
city.name = city.name.slice(0, city.name.length - 1)
|
}
|
})
|
|
// A-Z
|
let json = []
|
|
for (var i = 0; i < 26; i++) {
|
json.push({
|
initial: String.fromCharCode(65 + i),
|
list: []
|
})
|
}
|
|
json.forEach(j => {
|
cities.forEach(city => {
|
if (pinyin.getFullChars(city.name).slice(0, 1) === j.initial) {
|
j.list.push(city)
|
}
|
})
|
})
|
|
// 过滤空数组
|
json = json.filter(j => j.list.length)
|
|
fs.writeFileSync('./cities.json', JSON.stringify(json))
|