// 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)) 
 |