Skip to content

Instantly share code, notes, and snippets.

@watagashi
Forked from mid0111/data.json
Last active Dec 17, 2015
Embed
What would you like to do?
javascript の ループ内での同期
[
{"name": "静岡市立番町小学校", "address": "静岡市葵区新富町一丁目 23 番地の 1", "tel": "054-253-2148"},
{"name": "静岡市立新通小学校", "address": "静岡市葵区駒形通二丁目 4 番 47 号", "tel": "054-252-1301"},
{"name": "静岡市立駒形小学校", "address": "静岡市葵区南安倍二丁目 1 番 1 号", "tel": "054-252-3340"},
{"name": "静岡市立安西小学校", "address": "静岡市葵区安西一丁目 96 番地の 3", "tel": "054-271-1551"},
{"name": "静岡市立田町小学校", "address": "静岡市葵区田町五丁目 70 番地", "tel": "054-255-3428"},
{"name": "静岡市立井宮小学校", "address": "静岡市葵区平和一丁目 7 番 1 号", "tel": "054-271-5288"},
{"name": "静岡市立井宮北小学校", "address": "静岡市葵区上伝馬 2 番 1 号", "tel": "054-272-1326"},
{"name": "静岡市立安倍口小学校", "address": "静岡市葵区安倍口新田 50 番地", "tel": "054-296-0005"},
{"name": "静岡市立美和小学校", "address": "静岡市葵区遠藤新田 69 番地の 1", "tel": "054-296-0700"},
{"name": "静岡市立足久保小学校", "address": "静岡市葵区足久保奥組 741 番地の 1", "tel": "054-296-0051"},
{"name": "静岡市立伝馬町小学校", "address": "静岡市葵区伝馬町 14 番地の 2", "tel": "054-254-9185"},
{"name": "静岡市立葵小学校", "address": "静岡市葵区城内町 7 番 9 号", "tel": "054-255-3471"},
{"name": "静岡市立横内小学校", "address": "静岡市葵区緑町 1 番 1 号", "tel": "054-245-4695"},
{"name": "静岡市立安東小学校", "address": "静岡市葵区安東三丁目 16 番 1 号", "tel": "054-245-2638"},
{"name": "静岡市立竜南小学校", "address": "静岡市葵区竜南一丁目 23 番 1 号", "tel": "054-246-3061"},
{"name": "静岡市立城北小学校", "address": "静岡市葵区北安東四丁目 27 番 3 号", "tel": "054-246-4111"},
{"name": "静岡市立千代田小学校", "address": "静岡市葵区沓谷五丁目 47 番地の 1", "tel": "054-261-2685"},
{"name": "静岡市立千代田東小学校", "address": "静岡市葵区川合三丁目 4 番 1 号", "tel": "054-262-1842"},
{"name": "静岡市立北沼上小学校", "address": "静岡市葵区北沼上 1020 番地", "tel": "054-266-2021"},
{"name": "静岡市立麻機小学校", "address": "静岡市葵区有永 421 番地の 1", "tel": "054-245-9826"},
{"name": "静岡市立西奈小学校", "address": "静岡市葵区瀬名三丁目 23 番 1 号", "tel": "054-261-3041"},
{"name": "静岡市立西奈南小学校", "address": "静岡市葵区南瀬名町 1 番 20 号", "tel": "054-263-5544"},
{"name": "静岡市立賤機南小学校", "address": "静岡市葵区松富三丁目 1 番 46 号", "tel": "054-271-2335"},
{"name": "静岡市立賤機中小学校", "address": "静岡市葵区牛妻 2095 番地の 2", "tel": "054-294-0003"},
{"name": "静岡市立賤機北小学校", "address": "静岡市葵区俵沢 234 番地の 1", "tel": "054-294-0004"},
{"name": "静岡市立松野小学校", "address": "静岡市葵区松野 598 番地の 2", "tel": "054-294-0002"},
{"name": "静岡市立大河内小学校", "address": "静岡市葵区平野 1850 番地の 3", "tel": "054-293-2303"},
{"name": "静岡市立梅ケ島小学校", "address": "静岡市葵区梅ケ島 1309 番地の 1", "tel": "054-269-2009"},
{"name": "静岡市立玉川小学校", "address": "静岡市葵区落合 103 番地の 3", "tel": "054-292-2012"},
{"name": "静岡市立井川小学校", "address": "静岡市葵区井川 708 番地の 1", "tel": "054-260-2004"},
{"name": "静岡市立服織小学校", "address": "静岡市葵区羽鳥六丁目 9 番 1 号", "tel": "054-278-6322"},
{"name": "静岡市立服織西小学校", "address": "静岡市葵区新間 759 番地の 1 の l", "tel": "054-278-9793"},
{"name": "静岡市立南藁科小学校", "address": "静岡市葵区吉津 400 番地", "tel": "054-278-9734"},
{"name": "静岡市立中藁科小学校", "address": "静岡市葵区大原 942 番地の 1", "tel": "054-279-0130"},
{"name": "静岡市立中藁科小学校小布杉分校(休校)", "address": "静岡市葵区小布杉 1756 番地の 1", "tel": "054-270-1301"},
{"name": "静岡市立水見色小学校", "address": "静岡市葵区水見色 1040 番地の 3", "tel": "054-279-0123"},
{"name": "静岡市立清沢小学校", "address": "静岡市葵区相俣 99 番地の l", "tel": "054-295-3010"},
{"name": "静岡市立峰山小学校", "address": "静岡市葵区黒俣 2741 番地の 16", "tel": "054-295-3131"},
{"name": "静岡市立大川小学校", "address": "静岡市葵区日向 853 番地", "tel": "054-291-2004"},
{"name": "静岡市立中田小学校", "address": "静岡市駿河区中田二丁目 14 番 1 号", "tel": "054-286-3245"},
{"name": "静岡市立中島小学校", "address": "静岡市駿河区中島 2992 番地の 1", "tel": "054-283-4455"},
{"name": "静岡市立大里東小学校", "address": "静岡市駿河区高松 2310 番地", "tel": "054-237-0879"},
{"name": "静岡市立大里西小学校", "address": "静岡市駿河区中原 400 番地", "tel": "054-285-9195"},
{"name": "静岡市立大谷小学校", "address": "静岡市駿河区大谷 3683 番地の 2", "tel": "054-237-0008"},
{"name": "静岡市立久能小学校", "address": "静岡市駿河区古宿 213 番地の 2", "tel": "054-237-4744"},
{"name": "静岡市立宮竹小学校", "address": "静岡市駿河区宮竹二丁目 12 番 1 号", "tel": "054-237-2231"},
{"name": "静岡市立森下小学校", "address": "静岡市駿河区森下町 2 番 1 号", "tel": "054-286-3105"},
{"name": "静岡市立東豊田小学校", "address": "静岡市駿河区池田 491 番地の 2", "tel": "054-262-1191"},
{"name": "静岡市立西豊田小学校", "address": "静岡市駿河区曲金二丁目 8 番 80 号", "tel": "054-285-9165"},
{"name": "静岡市立富士見小学校", "address": "静岡市駿河区登呂一丁目 1 番 1 号", "tel": "054-286-3165"},
{"name": "静岡市立南部小学校", "address": "静岡市駿河区南八幡町 11 番 1 号", "tel": "054-286-8019"},
{"name": "静岡市立東源台小学校", "address": "静岡市駿河区国吉田六丁目 7 番 45 号054-265-2500"},
{"name": "静岡市立長田西小学校", "address": "静岡市駿河区丸子六丁目 15 番 65 号", "tel": "054-259-8256"},
{"name": "静岡市立長田南小学校", "address": "静岡市駿河区広野四丁目 7 番 1 号", "tel": "054-259-6133"},
{"name": "静岡市立長田東小学校", "address": "静岡市駿河区東新田三丁目 10 番 1 号054-259-7516"},
{"name": "静岡市立長田北小学校", "address": "静岡市駿河区向敷地 890 番地", "tel": "054-258-2997"},
{"name": "静岡市立川原小学校", "address": "静岡市駿河区下川原四丁目 14 番 1 号054-259-5911"},
{"name": "静岡市立清水入江小学校", "address": "静岡市清水区追分二丁目 3 番 1 号", "tel": "054-366-6210"},
{"name": "静岡市立清水浜田小学校", "address": "静岡市清水区浜田町 11 番 1 号", "tel": "054-353-6135"},
{"name": "静岡市立清水岡小学校", "address": "静岡市清水区神田町 4 番 3 号", "tel": "054-353-3368"},
{"name": "静岡市立清水船越小学校", "address": "静岡市清水区北矢部 831 番地の 1", "tel": "054-351-1804"},
{"name": "静岡市立清水有度第一小学校", "address": "静岡市清水区有度本町 3 番 1 号", "tel": "054-345-0511"},
{"name": "静岡市立清水有度第二小学校", "address": "静岡市清水区草薙杉道三丁目 19 番 1号", "tel": "054-345-2391"},
{"name": "静岡市立清水小学校", "address": "静岡市清水区松井町 15 番 1 号", "tel": "054-353-3341"},
{"name": "静岡市立清水不二見小学校", "address": "静岡市清水区新緑町 2 番 21 号", "tel": "054-334-2510"},
{"name": "静岡市立清水駒越小学校", "address": "静岡市清水区駒越東町 2 番 20 号", "tel": "054-334-2331"},
{"name": "静岡市立清水三保第一小学校", "address": "静岡市清水区三保 1069 番地の 1", "tel": "054-334-0721"},
{"name": "静岡市立清水三保第二小学校", "address": "静岡市清水区折戸五丁目 8 番 2 号", "tel": "054-334-6364"},
{"name": "静岡市立清水辻小学校", "address": "静岡市清水区辻四丁目 3 番 40 号", "tel": "054-365-5910"},
{"name": "静岡市立清水江尻小学校", "address": "静岡市清水区江尻町 14 番 63 号", "tel": "054-366-6010"},
{"name": "静岡市立清水飯田小学校", "address": "静岡市清水区下野中 2 番 40 号", "tel": "054-366-6091"},
{"name": "静岡市立清水飯田東小学校", "address": "静岡市清水区八坂北一丁目 23 番 40号", "tel": "054-365-1444"},
{"name": "静岡市立清水高部小学校", "address": "静岡市清水区押切 1115 番地の 2", "tel": "054-345-7010"},
{"name": "静岡市立清水高部東小学校", "address": "静岡市清水区押切 1907 番地", "tel": "054-347-2861"},
{"name": "静岡市立清水袖師小学校", "address": "静岡市清水区袖師町 420 番地", "tel": "054-366-7310"},
{"name": "静岡市立清水庵原小学校", "address": "静岡市清水区庵原町 1723 番地", "tel": "054-365-3824"},
{"name": "静岡市立清水興津小学校", "address": "静岡市清水区興津中町 350 番地の 1", "tel": "054-369-0185"},
{"name": "静岡市立清水小島小学校", "address": "静岡市清水区小島町 619 番地", "tel": "054-393-2014"},
{"name": "静岡市立清水小河内小学校", "address": "静岡市清水区小河内 2723 番地", "tel": "054-393-2044"},
{"name": "静岡市立清水宍原小学校", "address": "静岡市清水区宍原 919 番地", "tel": "054-394-0341"},
{"name": "静岡市立清水中河内小学校", "address": "静岡市清水区中河内 2583 番地の 1", "tel": "054-395-2241"},
{"name": "静岡市立清水西河内小学校", "address": "静岡市清水区西里 143 番地", "tel": "054-395-2041"},
{"name": "静岡市立清水和田島小学校", "address": "静岡市清水区和田島 611 番地", "tel": "054-395-2031"},
{"name": "静岡市立蒲原東小学校", "address": "静岡市清水区蒲原 666 番地", "tel": "054-385-4155"},
{"name": "静岡市立蒲原西小学校", "address": "静岡市清水区蒲原新田二丁目 25 番 1号", "tel": "054-385-4125"},
{"name": "静岡市立由比小学校", "address": "静岡市清水区由比町屋原 329 番地", "tel": "054-375-2074"},
{"name": "静岡市立由比北小学校", "address": "静岡市清水区由比入山 2158 番地", "tel": "054-375-3047"}
]
'use strict';
var fs = require('fs');
var program = require('commander');
var GoogleMapsAPI = require('googlemaps');
function sequenceTasks(tasks) {
function recordValue(results, value) {
results.push(value);
return results;
}
var pushValue = recordValue.bind(null, []);
return tasks.reduce(function(promise, task) {
return promise.then(task).then(pushValue);
}, Promise.resolve());
}
var gapiConf = {
key: 'google API key',
secure: true
};
var gmAPI = new GoogleMapsAPI(gapiConf);
var geocodeParams = {
language: 'ja',
region: 'ja'
};
var data = JSON.parse(fs.readFileSync('data.json'));
var outputFile = 'data.json.out';
function getLocation(data, i) {
return function() {
return new Promise(function(resolve, reject) {
var address = data[i].address;
geocodeParams.address = address;
gmAPI.geocode(geocodeParams, function(err, result) {
setTimeout(function() {
if (err) {
console.error('[' + i + ']', 'Parse failed: ', address);
reject(err);
} else {
var location = result.results[0].geometry.location;
console.log('[' + i + ']',location);
resolve(location);
}
}, 1000);
});
});
};
}
var tasks = [];
for (var i = 0; i < data.length; i++) {
tasks.push(getLocation(data, i));
}
sequenceTasks(tasks).catch(function(e) {
console.error(e);
});
node index.js
[87] { lat: 34.9701904, lng: 138.3771102 }
[87] { lat: 34.9917489, lng: 138.3834423 }
[87] { lat: 35.0649036, lng: 138.3698146 }
[87] { lat: 35.1485588, lng: 138.3613304 }
[87] { lat: 34.9794353, lng: 138.315311 }
[87] { lat: 34.9753621, lng: 138.3912894 }
[87] { lat: 35.0223814, lng: 138.359808 }
[87] { lat: 35.0144823, lng: 138.3747206 }
[87] { lat: 35.0046502, lng: 138.3686989 }
[87] { lat: 34.957862, lng: 138.4564726 }
[87] { lat: 34.9517319, lng: 138.4174905 }
[87] { lat: 34.9884438, lng: 138.3667689 }
[87] { lat: 34.9569531, lng: 138.3863765 }
[87] { lat: 34.9713237, lng: 138.3929615 }
[87] { lat: 34.9936501, lng: 138.3077282 }
[87] { lat: 35.0027837, lng: 138.3879333 }
[87] { lat: 35.0918953, lng: 138.5151726 }
[87] { lat: 35.1082951, lng: 138.5576241 }
[87] { lat: 35.0131548, lng: 138.4829921 }
[87] { lat: 35.0300582, lng: 138.3684211 }
[87] { lat: 34.9410745, lng: 138.3995646 }
[87] { lat: 34.9548317, lng: 138.4292837 }
[87] { lat: 35.1086174, lng: 138.4806404 }
[87] { lat: 34.9990594, lng: 138.396316 }
[87] { lat: 35.0518804, lng: 138.4752169 }
[87] { lat: 35.0069824, lng: 138.4531977 }
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] { lat: 34.9908906, lng: 138.5165253 }
[87] { lat: 34.9860942, lng: 138.3928917 }
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
[87] { lat: 34.960642, lng: 138.4099187 }
[87] { lat: 35.0010535, lng: 138.522188 }
[87] { lat: 34.9462987, lng: 138.3504078 }
[87] { lat: 35.0295435, lng: 138.4499279 }
[87] { lat: 34.9624111, lng: 138.4031109 }
[87] { lat: 35.0548583, lng: 138.5259341 }
[87] { lat: 34.9638718, lng: 138.3923452 }
[87] Parse failed: 静岡市清水区由比入山 2158 番地
[TypeError: Cannot read property 'geometry' of undefined]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment