1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| var request = require('request') var fs = require('fs') let arr = [] let arrRoad = []
let search = [ '小区', '公园', '医院', '广场', '写字楼' ]
let district = '南沙区 ' let LENGTH = 0.001 let url = 'http://ditu.amap.com/service/poiInfo?query_type=TQUERY&pagesize=20&pagenum=1&qii=true&cluster_state=5&need_utd=true&utd_sceneid=1000&div=PC1000&addr_poi_merge=true&is_classify=true&zoom=17&city=440100&geoobj=113.605673%7C22.748379%7C113.621122%7C22.752178&keywords=' search.forEach(keyword => { arr.push(new Promise(resolve => { request((url + encodeURI(district + keyword)), (error, response, body) => { if (!error && response.statusCode === 200) { console.log(body) let transBody = body && JSON.parse(body) let {data} = transBody let {poi_list} = data let regionData = poi_list.map(item => { let hasAoi = item.domain_list.find(i => i.name === 'aoi') let po1 = [ Number(item.longitude) + LENGTH, item.latitude ] let po2 = [ item.longitude, Number(item.latitude) + LENGTH ] let po3 = [ Number(item.longitude) - LENGTH, item.latitude ] let po4 = [ item.longitude, Number(item.latitude) - LENGTH ] return { name: item.name, coordinates: hasAoi.hasOwnProperty('value') ? [hasAoi.value.split('_').map(i => i.split(','))] : [ [po1, po2, po3, po4, po1] ] } }) let result = regionData.map(item => { return { 'type': 'Feature', 'properties': { 'stroke': '#555555', 'stroke-width': 2, 'stroke-opacity': 1, 'fill': '#555555', 'fill-opacity': 0.5, 'height': 10, 'name': item.name }, 'geometry': { 'type': 'Polygon', 'coordinates': item.coordinates } } }) resolve(result) } }) })) }) Promise.all(arr).then(urls => { let geoJSON = {} geoJSON.type = 'FeatureCollection' geoJSON.features = [].concat(...urls) fs.unlink(__dirname + '/map.geojson', err => { if (err) { console.log(err) return false } fs.writeFile(__dirname + '/map.geojson', JSON.stringify(geoJSON), { flag: 'a' }, err => { if (err) { console.error(err) } else { console.log('写入成功') } }) }) })
|