
緯度と経度を基に,晴天日における日射量(直達日射+天空日射)の日積算値を月別に計算します。大気透過率は木村・滝沢の式を使用しています。(単位: MJ/m^2/day)
lat: 緯度 (20-50 度)
lon: 経度 (120-150 度)
http://webmodis.iis.u-tokyo.ac.jp/~tagchan/clanguage/monthly_rad.php?lat=30&lon=140
フォーマットはJSONです。monthが月,radiationが日射量です。下の例は1月と12月ですが,1月から12月まで順番に値が表示されます。
radiationApi({
"year" : [
{ "month" : "1", "radiation" : "10.397250" },
{ "month" : "12", "radiation" : "9.438343" }
});
クリックすると,月ごとの晴天日における日射量の日積算値が表示されます。
Graph by Google Chart API
//<![CDATA[
var map;
var marker;
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GScaleControl());
map.addMapType(G_PHYSICAL_MAP);
map.addControl(new GMenuMapTypeControl(true, false));
map.enableScrollWheelZoom();
map.enableGoogleBar();
map.addControl(new GLargeMapControl());
map.setCenter(new GLatLng(34.985776660457525, 135.75848579406738), 7, G_PHYSICAL_MAP);
var icon = new GIcon();
icon.image = "http://www.google.com/intl/en_ALL/mapfiles/arrow.png";
icon.shadow = "http://www.google.com/intl/en_ALL/mapfiles/arrowshadow.png";
icon.iconSize = new GSize(39, 34);
icon.shadowSize = new GSize(39, 34);
icon.iconAnchor = new GPoint(10, 34);
GEvent.addListener(map, 'click', function(overlay, point){
getJSON(point.lat(), point.lng());
var location = "Lon: "+point.lng()+", Lat: "+point.lat()+"";
addMarker(point,icon);
document.getElementById("location").innerHTML = location;
});
}
}
function getJSON(lat, lon) {
var req_url = "http://webmodis.iis.u-tokyo.ac.jp/~tagchan/clanguage/monthly_rad.php?lat="+lat+"&lon="+lon+"";
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = req_url;
document.getElementsByTagName("head")[0].appendChild(script);
return;
}
function radiationApi( obj ){
var html = "";
var data = "";
var g1 = "chs=250x205&cht=lc&chxt=x,y&chd=t:";
var g_param = "&chxt=x,y&chxl=0:|01|02|03|04|05|06|07|08|09|10|11|12|1:||10|20|30&chg=8.33,6.66&chtt=Monthly+Solar+Radiation|(MJ/m^2/day)";
for(var i=0; i<obj.year.length; i++){
var mon = obj.year[i].month;
var rad = obj.year[i].radiation;
html += "Month: "+ mon +", Radiation:" + rad +" MJ/m^2/day<br>";
var rad_stand = obj.year[i].radiation/30*100; // Maximum valuo of Y-axis is 40!!
if(i<11){
data += ""+rad_stand+",";
} else {
data += ""+rad_stand+"";
}
}
g1 = g1 + data + g_param;
var html_graph = "<img src='http://chart.apis.google.com/chart?" + g1 +"'>";
document.getElementById("list").innerHTML = html;
document.getElementById("graph").innerHTML = html_graph;
}
function addMarker(point, icon){
map.clearOverlays();
marker = new GMarker(point,icon);
map.addOverlay(marker);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(html);
});
}
//]]>
2007/10/25: α版を公開しました。
2007/12/07: Google Mapsを更新し,Google Chart APIとマッシュアップしました。
Copyright (c) Hitoshi Taguchi 2000-2008 All Rights Reserved.