|
@@ -2,6 +2,7 @@ const fs = require('fs')
|
|
const request = require('request')
|
|
const request = require('request')
|
|
const path = require('path')
|
|
const path = require('path')
|
|
const dirPath = path.join(__dirname, "baseMap");
|
|
const dirPath = path.join(__dirname, "baseMap");
|
|
|
|
+const setting = require('./region')
|
|
|
|
|
|
function checkLocal(zoom, x, y) {
|
|
function checkLocal(zoom, x, y) {
|
|
return new Promise(resolve => {
|
|
return new Promise(resolve => {
|
|
@@ -27,13 +28,15 @@ const downImage = (function() {
|
|
|
|
|
|
return new Promise(resolve => {
|
|
return new Promise(resolve => {
|
|
try {
|
|
try {
|
|
|
|
+ // 如果30秒都还没完成则直接返回
|
|
|
|
+ setTimeout(resolve, 30000)
|
|
|
|
+
|
|
let readStream = request(url)
|
|
let readStream = request(url)
|
|
let writeStream = fs.createWriteStream(local)
|
|
let writeStream = fs.createWriteStream(local)
|
|
|
|
|
|
readStream.on('error', errorHandle)
|
|
readStream.on('error', errorHandle)
|
|
|
|
|
|
function errorHandle(err) {
|
|
function errorHandle(err) {
|
|
- console.error(err)
|
|
|
|
resolve()
|
|
resolve()
|
|
}
|
|
}
|
|
|
|
|
|
@@ -49,7 +52,6 @@ const downImage = (function() {
|
|
.on('error', errorHandle)
|
|
.on('error', errorHandle)
|
|
} catch (e) {
|
|
} catch (e) {
|
|
resolve()
|
|
resolve()
|
|
- console.error(e)
|
|
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
@@ -61,95 +63,10 @@ async function cache(...args) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-let setting = {
|
|
|
|
- 1: {
|
|
|
|
- minX: -1,
|
|
|
|
- maxX: 5,
|
|
|
|
- minY: -1,
|
|
|
|
- maxY: 5
|
|
|
|
- },
|
|
|
|
- 2: {
|
|
|
|
- minX: -1,
|
|
|
|
- maxX: 10,
|
|
|
|
- minY: -1,
|
|
|
|
- maxY: 10
|
|
|
|
- },
|
|
|
|
- 3: {
|
|
|
|
- minX: -1,
|
|
|
|
- maxX: 20,
|
|
|
|
- minY: -1,
|
|
|
|
- maxY: 20
|
|
|
|
- },
|
|
|
|
- 9: {
|
|
|
|
- minX: 200,
|
|
|
|
- maxX: 600,
|
|
|
|
- maxY: 100,
|
|
|
|
- maxY: 400
|
|
|
|
- },
|
|
|
|
- 10: {
|
|
|
|
- minX: 500,
|
|
|
|
- maxX: 1100,
|
|
|
|
- minY: 200,
|
|
|
|
- maxY: 600
|
|
|
|
- },
|
|
|
|
- 11: {
|
|
|
|
- minX: 1200,
|
|
|
|
- maxX: 2000,
|
|
|
|
- minY: 400,
|
|
|
|
- maxY: 1200
|
|
|
|
- },
|
|
|
|
- 12: {
|
|
|
|
- minX: 2300,
|
|
|
|
- maxX: 4300,
|
|
|
|
- minY: 1500,
|
|
|
|
- maxY: 2100
|
|
|
|
- },
|
|
|
|
- 13: {
|
|
|
|
- minX: 4600,
|
|
|
|
- maxX: 8600,
|
|
|
|
- minY: 2000,
|
|
|
|
- maxY: 4000
|
|
|
|
- },
|
|
|
|
- 14: {
|
|
|
|
- minX: 10000,
|
|
|
|
- maxX: 16600,
|
|
|
|
- minY: 5000,
|
|
|
|
- maxY: 8000
|
|
|
|
- },
|
|
|
|
- 15: {
|
|
|
|
- minX: 23000,
|
|
|
|
- maxX: 29000,
|
|
|
|
- minY: 10000,
|
|
|
|
- maxY: 16000
|
|
|
|
- },
|
|
|
|
- 16: {
|
|
|
|
- minX: 40000,
|
|
|
|
- maxX: 60000,
|
|
|
|
- minY: 23000,
|
|
|
|
- maxY: 31000
|
|
|
|
- },
|
|
|
|
- 17: {
|
|
|
|
- minX: 80000,
|
|
|
|
- maxX: 120000,
|
|
|
|
- minY: 50000,
|
|
|
|
- maxY: 62000
|
|
|
|
- },
|
|
|
|
- 18: {
|
|
|
|
- minX: 200000,
|
|
|
|
- maxX: 233000,
|
|
|
|
- minY: 80000,
|
|
|
|
- maxY: 130000
|
|
|
|
- },
|
|
|
|
- 19: {
|
|
|
|
- minX: 380000,
|
|
|
|
- maxX: 470000,
|
|
|
|
- minY: 180000,
|
|
|
|
- maxY: 250000
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
process.on('message', async msg => {
|
|
process.on('message', async msg => {
|
|
let zoom = Number(msg)
|
|
let zoom = Number(msg)
|
|
|
|
+ // 多少个请求一并
|
|
|
|
+ let parallel = 10
|
|
|
|
|
|
console.log(zoom)
|
|
console.log(zoom)
|
|
let {minX, maxX, minY, maxY} = setting[zoom]
|
|
let {minX, maxX, minY, maxY} = setting[zoom]
|
|
@@ -161,7 +78,7 @@ process.on('message', async msg => {
|
|
|
|
|
|
for (let x = maxX; x > minX; x--) {
|
|
for (let x = maxX; x > minX; x--) {
|
|
for (let y = minY; y < maxY && y < x;) {
|
|
for (let y = minY; y < maxY && y < x;) {
|
|
- let run = y + 100 < maxY ? 100 : maxY - y
|
|
|
|
|
|
+ let run = y + parallel < maxY ? parallel : maxY - y
|
|
let pros = []
|
|
let pros = []
|
|
for (let h = 0; h < run; h++) {
|
|
for (let h = 0; h < run; h++) {
|
|
count++
|
|
count++
|