UNPKG

bird-api

Version:
95 lines (90 loc) 11.5 kB
(function() { var app; app = angular.module('myApp', ['chart.js']); app.controller('birdNameHistogram', [ '$scope', '$http', function($scope, $http) { $scope.content = '日本ではカモ類の多くは渡り鳥ですが、カルガモは留鳥で、年中観察することができます。\nマガモは渡りを行いますが、日本で繁殖する場合もあります。\n滋賀県米原市にある三島池はマガモの繁殖の南限地として有名です。\n琵琶湖では、ヒドリガモ、コガモ、オナガガモ、キンクロハジロ、ホシハジロ、スズガモなどのカモ類が多く見られます。\nこれらのうち、ヒドリガモ、コガモ、オナガガモ、キンクロハジロ、ホシハジロは狩猟鳥です。\nコガモは狩猟者から「べ」と呼ばれます。\nその他に、カワアイサ、ウミアイサ、ミコアイサなどのアイサ類、コブハクチョウやコハクチョウ、ヒシクイ、オオヒシクイなどのガン類も見られます。'; $scope.APIbase = 'http://bird-api.biwako.io/v1/'; return $scope.request = function() { var data, key, labels, options, ref, value; if ($scope.histogram != null) { labels = []; data = []; ref = $scope.histogram[$scope.rank]; for (key in ref) { value = ref[key]; labels.push(key); data.push(value); } $scope.labels = labels; $scope.data = data; return; } else { $scope.histogram = {}; } options = { method: 'GET', url: $scope.APIbase + 'inclusion?content=' + $scope.content }; return $http(options).then(function(arg) { var data, histogram, j, len, ref1, sp, subRequests; data = arg.data; histogram = data.histogram; subRequests = []; ref1 = data.histogram; for (j = 0, len = ref1.length; j < len; j++) { sp = ref1[j]; options = { method: 'GET', url: $scope.APIbase + 'birds/' + sp.species.ja }; subRequests.push($http(options)); } return Promise.all(subRequests).then(function(results) { var buffer, buffers, frequency, i, ja, k, l, len1, len2, m, rank, ref2, ref3, ref4, taxnomy; buffers = []; for (i = k = 0, ref2 = histogram.length - 1; 0 <= ref2 ? k <= ref2 : k >= ref2; i = 0 <= ref2 ? ++k : --k) { results[i].data.taxonomies.unshift({ rank: 'species', ja: results[i].data.name.ja }); ref3 = results[i].data.taxonomies; for (l = 0, len1 = ref3.length; l < len1; l++) { taxnomy = ref3[l]; buffers.push({ frequency: histogram[i].frequency, ja: taxnomy.ja, rank: taxnomy.rank }); } } for (m = 0, len2 = buffers.length; m < len2; m++) { buffer = buffers[m]; rank = buffer.rank; ja = buffer.ja; frequency = buffer.frequency; if ($scope.histogram[rank] == null) { $scope.histogram[rank] = {}; } if ($scope.histogram[rank][ja] == null) { $scope.histogram[rank][ja] = 0; } $scope.histogram[rank][ja] += frequency; } labels = []; data = []; ref4 = $scope.histogram[$scope.rank]; for (key in ref4) { value = ref4[key]; labels.push(key); data.push(value); } $scope.labels = labels; return $scope.data = data; }); }); }; } ]); }).call(this); //# sourceMappingURL=data:application/json;base64,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LElBQUwsQ0FBVSxLQUFWO0FBRko7WUFHQSxNQUFNLENBQUMsTUFBUCxHQUFnQjttQkFDaEIsTUFBTSxDQUFDLElBQVAsR0FBYztVQTVCWixDQURWO1FBVGdCLENBQXBCO01BakJhO0lBWnJCLENBSGdDO0dBQXBDO0FBREEiLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIvc291cmNlLyIsInNvdXJjZXNDb250ZW50IjpbImFwcCA9IGFuZ3VsYXIubW9kdWxlICdteUFwcCcsIFsnY2hhcnQuanMnXVxuYXBwLmNvbnRyb2xsZXIgJ2JpcmROYW1lSGlzdG9ncmFtJywgW1xuICAgICckc2NvcGUnXG4gICAgJyRodHRwJ1xuICAgICgkc2NvcGUsICRodHRwKSAtPlxuICAgICAgICAkc2NvcGUuY29udGVudCA9ICcnJ1xuICAgICAgICAgICAg5pel5pys44Gn44Gv44Kr44Oi6aGe44Gu5aSa44GP44Gv5rih44KK6bOl44Gn44GZ44GM44CB44Kr44Or44Ks44Oi44Gv55WZ6bOl44Gn44CB5bm05Lit6Kaz5a+f44GZ44KL44GT44Go44GM44Gn44GN44G+44GZ44CCXG4gICAgICAgICAgICDjg57jgqzjg6Ljga/muKHjgorjgpLooYzjgYTjgb7jgZnjgYzjgIHml6XmnKzjgafnuYHmrpbjgZnjgovloLTlkIjjgoLjgYLjgorjgb7jgZnjgIJcbiAgICAgICAgICAgIOa7i+izgOecjOexs+WOn+W4guOBq+OBguOCi+S4ieWztuaxoOOBr+ODnuOCrOODouOBrue5geauluOBruWNl+mZkOWcsOOBqOOBl+OBpuacieWQjeOBp+OBmeOAglxuICAgICAgICAgICAg55C155C25rmW44Gn44Gv44CB44OS44OJ44Oq44Ks44Oi44CB44Kz44Ks44Oi44CB44Kq44OK44Ks44Ks44Oi44CB44Kt44Oz44Kv44Ot44OP44K444Ot44CB44Ob44K344OP44K444Ot44CB44K544K644Ks44Oi44Gq44Gp44Gu44Kr44Oi6aGe44GM5aSa44GP6KaL44KJ44KM44G+44GZ44CCXG4gICAgICAgICAgICDjgZPjgozjgonjga7jgYbjgaHjgIHjg5Ljg4njg6rjgqzjg6LjgIHjgrPjgqzjg6LjgIHjgqrjg4rjgqzjgqzjg6LjgIHjgq3jg7Pjgq/jg63jg4/jgrjjg63jgIHjg5vjgrfjg4/jgrjjg63jga/ni6nnjJ/ps6XjgafjgZnjgIJcbiAgICAgICAgICAgIOOCs+OCrOODouOBr+eLqeeMn+iAheOBi+OCieOAjOOBueOAjeOBqOWRvOOBsOOCjOOBvuOBmeOAglxuICAgICAgICAgICAg44Gd44Gu5LuW44Gr44CB44Kr44Ov44Ki44Kk44K144CB44Km44Of44Ki44Kk44K144CB44Of44Kz44Ki44Kk44K144Gq44Gp44Gu44Ki44Kk44K16aGe44CB44Kz44OW44OP44Kv44OB44On44Km44KE44Kz44OP44Kv44OB44On44Km44CB44OS44K344Kv44Kk44CB44Kq44Kq44OS44K344Kv44Kk44Gq44Gp44Gu44Ks44Oz6aGe44KC6KaL44KJ44KM44G+44GZ44CCXG4gICAgICAnJydcbiAgICAgICAgJHNjb3BlLkFQSWJhc2UgPSAnaHR0cDovL2JpcmQtYXBpLmJpd2Frby5pby92MS8nXG5cbiAgICAgICAgJHNjb3BlLnJlcXVlc3QgPSAtPlxuICAgICAgICAgICAgaWYgJHNjb3BlLmhpc3RvZ3JhbT9cbiAgICAgICAgICAgICAgICBsYWJlbHMgPSBbXVxuICAgICAgICAgICAgICAgIGRhdGEgPSBbXVxuICAgICAgICAgICAgICAgIGZvciBrZXksdmFsdWUgb2YgJHNjb3BlLmhpc3RvZ3JhbVskc2NvcGUucmFua11cbiAgICAgICAgICAgICAgICAgICAgbGFiZWxzLnB1c2gga2V5XG4gICAgICAgICAgICAgICAgICAgIGRhdGEucHVzaCB2YWx1ZVxuICAgICAgICAgICAgICAgICRzY29wZS5sYWJlbHMgPSBsYWJlbHNcbiAgICAgICAgICAgICAgICAkc2NvcGUuZGF0YSA9IGRhdGFcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAkc2NvcGUuaGlzdG9ncmFtID0ge31cblxuICAgICAgICAgICAgb3B0aW9ucyA9XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJ1xuICAgICAgICAgICAgICAgIHVybDogJHNjb3BlLkFQSWJhc2UgKyAnaW5jbHVzaW9uP2NvbnRlbnQ9JyArICRzY29wZS5jb250ZW50XG5cbiAgICAgICAgICAgICRodHRwKG9wdGlvbnMpLnRoZW4gKHtkYXRhfSkgLT5cbiAgICAgICAgICAgICAgICBoaXN0b2dyYW0gPSBkYXRhLmhpc3RvZ3JhbVxuICAgICAgICAgICAgICAgIHN1YlJlcXVlc3RzID0gW11cbiAgICAgICAgICAgICAgICBmb3Igc3AgaW4gZGF0YS5oaXN0b2dyYW1cbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICRzY29wZS5BUEliYXNlICsgJ2JpcmRzLycgKyBzcC5zcGVjaWVzLmphXG4gICAgICAgICAgICAgICAgICAgIHN1YlJlcXVlc3RzLnB1c2ggJGh0dHAob3B0aW9ucylcblxuICAgICAgICAgICAgICAgIFByb21pc2UuYWxsKHN1YlJlcXVlc3RzKVxuICAgICAgICAgICAgICAgICAgICAudGhlbiAocmVzdWx0cykgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICMgdHJhbnNmb3JtIG9iamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVycyA9IFtdXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiBbMC4uaGlzdG9ncmFtLmxlbmd0aC0xXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNbaV0uZGF0YS50YXhvbm9taWVzLnVuc2hpZnQge3Jhbms6J3NwZWNpZXMnLCBqYTogcmVzdWx0c1tpXS5kYXRhLm5hbWUuamF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRheG5vbXkgaW4gcmVzdWx0c1tpXS5kYXRhLnRheG9ub21pZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVycy5wdXNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZXF1ZW5jeTogaGlzdG9ncmFtW2ldLmZyZXF1ZW5jeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamE6IHRheG5vbXkuamFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbms6IHRheG5vbXkucmFua1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciBidWZmZXIgaW4gYnVmZmVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmsgPSBidWZmZXIucmFua1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphID0gYnVmZmVyLmphXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlcXVlbmN5ID0gYnVmZmVyLmZyZXF1ZW5jeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVubGVzcyAkc2NvcGUuaGlzdG9ncmFtW3JhbmtdP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUuaGlzdG9ncmFtW3JhbmtdID0ge31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmxlc3MgJHNjb3BlLmhpc3RvZ3JhbVtyYW5rXVtqYV0/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5oaXN0b2dyYW1bcmFua11bamFdID0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5oaXN0b2dyYW1bcmFua11bamFdICs9IGZyZXF1ZW5jeVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBbXVxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IFtdXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3Iga2V5LHZhbHVlIG9mICRzY29wZS5oaXN0b2dyYW1bJHNjb3BlLnJhbmtdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzLnB1c2gga2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5wdXNoIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUubGFiZWxzID0gbGFiZWxzXG4gICAgICAgICAgICAgICAgICAgICAgICAkc2NvcGUuZGF0YSA9IGRhdGFcbl1cbiJdfQ==