clip-and-run
Advanced tools
Comparing version
var MapboxClient = require('mapbox'); | ||
var cuid = require('cuid'); | ||
var queue = require('d3-queue').queue; | ||
@@ -28,21 +29,16 @@ /** | ||
} | ||
bulkUploadFeatures(client, dataset.id, featureCollection, 0, callback); | ||
bulkUploadFeatures(client, dataset.id, featureCollection, callback); | ||
}); | ||
}; | ||
var MAX_FEATURES = 100; | ||
function bulkUploadFeatures(client, datasetId, featureCollection, startIndex, callback) { | ||
var featuresToUpload = featureCollection.features.slice(startIndex, startIndex + MAX_FEATURES); | ||
client.batchFeatureUpdate({ | ||
'put': featuresToUpload | ||
}, datasetId, function(err, results) { | ||
if (err) { | ||
return callback(err); | ||
} | ||
if (featureCollection.features.length > (startIndex + MAX_FEATURES)) { | ||
bulkUploadFeatures(client, datasetId, featureCollection, startIndex + MAX_FEATURES, callback); | ||
} else { | ||
callback(null, datasetId); | ||
} | ||
function bulkUploadFeatures(client, datasetId, featureCollection, callback) { | ||
var featuresToUpload = featureCollection.features; | ||
var q = queue(1); | ||
featuresToUpload.forEach(function(feature) { | ||
q.defer(client.insertFeature.bind(client), feature, datasetId); | ||
}); | ||
q.awaitAll(function(err, results) { | ||
if (err) return callback(err); | ||
return callback(null, datasetId); | ||
}); | ||
} |
{ | ||
"name": "clip-and-run", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "Clip GeoJSON into polygons, get datasets for each.", | ||
@@ -25,2 +25,3 @@ "main": "index.js", | ||
"cuid": "^1.3.8", | ||
"d3-queue": "^3.0.3", | ||
"mapbox": "^1.0.0-beta", | ||
@@ -27,0 +28,0 @@ "minimist": "^1.2.0", |
15905892
0.01%20
5.26%6
20%140
-2.78%+ Added
+ Added