こうち防災情報
文字の大きさ

Language

緊急情報情報一覧

緊急情報 はありません。

件中 件目'); $('.current').text(slick.currentSlide + 1); $('.total').text(slick.slideCount); }) .on('beforeChange', function(event, slick, currentSlide, nextSlide) { $('.current').text(nextSlide + 1); }); $('.slider').slick({ autoplay: true, //自動再生[default:false] autoplaySpeed: 10000, //自動再生の速度(ミリ秒)[default:3000] dots: true, //ドットナビの表示[default:false] draggable: true //マウスドラッグでスライド切替[default:true] })
お知らせ過去のお知らせ一覧
件中 件目'); $('.current_oshirase').text(slick.currentSlide + 1); $('.total_oshirase').text(slick.slideCount); }) .on('beforeChange', function(event, slick, currentSlide, nextSlide){ $('.current_oshirase').text(nextSlide + 1); }); $('.slider_oshirase').slick({ autoplay: true, autoplaySpeed: 10000, dots: true, draggable: true });

お住まいの地域の最新情報を表示します。

地域を選択

地域が設定されておりません

の最新情報' ); myArea.append(myAreaArray.join('')); table.append('取得中・・・'); areaAjax(url,file,data); } //マイエリアの最新情報生成 function myAreainfo(data){ var table = $(classname); var myArea = $('.myareaInner'); var myAreaArray = []; var tableArray = []; var attentionArr = ''; var attentionMsg = ''; // 市町村名の設定 myArea.empty(); myAreaArray.push( '' + data['cityName'] + 'の最新情報' ); myArea.append(myAreaArray.join('')); // 気象注意報・警報 attentionMsg = ''; if (data['attention'].length == 0){ attentionMsg = '注意報・警報は発表されていません。'; }else{ for(var i = 0; i < data['attention'].length; i++){ var info = data['attention'][i]; attentionMsg += '' + info['text'] + ''; } } // 避難情報 var evacuationMsg = ''; var viewevInfoCount = true; if(data['evacuation'].length == 0 ){ evacuationMsg = '情報はありません。'; }else{ for(var i = 0; i < data['evacuation'].length; i++){ var info = data['evacuation'][i]; if(viewevInfoCount && info['count']){ evacuationMsg += '' + info['text'] + ' ' + info['count'] + 'か所'; }else{ evacuationMsg += '' + info['text'] + ''; } if (info['text'] == '訂正') { evacuationMsg += '
'; } } if("evainfo".length > 0){ var myareaId = selectObj()['areaSelect'].val(); evacuationMsg = '
' + evacuationMsg + '
詳細情報へ
'; } } // 避難所情報 var shelterMsg = ''; var viewshelterInfoCount = true; if(data['shelter'].length == 0){ shelterMsg = '情報はありません。'; }else{ for(var i = 0; i < data['shelter'].length; i++){ var info = data['shelter'][i]; if(viewshelterInfoCount && info['count']){ shelterMsg += '' + info['text'] + ' ' + info['count'] + 'か所'; }else{ shelterMsg += '' + info['text'] + ''; } if (info['text'] == '訂正') { shelterMsg += '
'; } } if("shelter".length > 0){ var myareaId = selectObj()['areaSelect'].val(); shelterMsg = '
' + shelterMsg + '
詳細情報へ
'; } } // 地震・津波 var earthquakeMsg = ''; if(data['earthquake'].length > 0){ for(var i = 0; i < data['earthquake'].length; i++){ var info = data['earthquake'][i]; earthquakeMsg += '' + info['text'] + ''; } } if(data['tsunami'].length > 0){ for(var i = 0; i < data['tsunami'].length; i++){ var info = data['tsunami'][i]; earthquakeMsg += '' + info['warntext'] + ':' + info['text'] + ''; } } if(earthquakeMsg.length == 0){ earthquakeMsg = '情報はありません。'; } // 土砂災害警戒情報 var sedimentMsg = ''; if(data['sediment'].length == 0 ){ sedimentMsg = '情報はありません。'; }else{ for(var i = 0; i < data['sediment'].length; i++){ var info = data['sediment'][i]; sedimentMsg += '' + info['text'] + ''; } } // 本部情報 var honbuMsg = ''; if(data['honbu'].length == 0){ honbuMsg = '情報はありません。'; }else{ for(var i = 0; i < data['honbu'].length; i++){ var info = data['honbu'][i]; honbuMsg += '' + info['text'] + ''; if (info['text'] == '訂正') { honbuMsg += '
'; } } } // 取得した情報を設定 tableArray.push( '
注意報・警報
' + attentionMsg + '
', '
地震
' + earthquakeMsg + '
土砂災害警戒情報
' + sedimentMsg + '
', '
避難情報
' + evacuationMsg + '
避難所情報
' + shelterMsg + '
', '
警戒体制情報
' + honbuMsg + '
' ); table.empty(); table.append(tableArray.join('')); // 追加情報表示 if(true){ if(data['additional'] != ''){ $('#additionalInfo').append(data['additional']); } } if(true){ // 詳細へボタン有効化 $(".btn_detail").show(); $(".btn_detail").click(function(){ window.location.href = '/P_PUB_VF_CityInfo?city=' + selectObj()['areaSelect'].val(); return false; }); } // マイエリア部分は非同期で更新されるため、アンカー位置も読み込み後、非同期で移動する var kind = getParam('kind'); if (kind == 'ev') { $(document).scrollTop( $("#" + "evainfo").offset().top); } else if (kind == 'sh') { $(document).scrollTop( $("#" + "shelter").offset().top); } } //地域情報を保存用のオブジェクト生成 function selectData(category,area){ var obj = { category: category.text(), categoryVal : category.val(), area: area.text(), areaVal: area.val() } return obj; } //地域情報を保存 function setStorageTimer(key,value,limit){ limit = limit === undefined ? false: (new Date).getTime() + limit * 1000; var data = { limit: limit, value: value }; localStorage.setItem(key, JSON.stringify(data)); } //保存された地域情報の読み込み function loadStorage(){ var keeptime = getLstroge('keeptime'); if (keeptime == null ) { return false; } keeptime = JSON.parse(keeptime); if (keeptime['limit'] > (new Date).getTime()) { loadSelectBox(keeptime['value']); } else { localStorage.removeItem('keeptime'); localStorage.removeItem('data'); } } //マイエリアがある場合のセレクトボックス function loadSelectBox(stdata){ var categoryVal = stdata['categoryVal']; var url = ajaxPath(); var data = { area1 : categoryVal } areaAjax(url,categoryVal,data,TYPE.INIT_AREA); } //マイエリアの保存期限のセット function resetTimer(){ var categorySelect = selectObj()['categorySelect']; var arealistSelect = selectObj()['areaSelect']; var obj = selectData(categorySelect,arealistSelect); setStorageTimer('keeptime', obj, limitTime); } //地域選択の初期値 function setInitSelectBoxCategory(){ var keeptime = getLstroge('keeptime'); if (keeptime == null ) { return false; } keeptime = JSON.parse(keeptime); var stdata = keeptime['value']; var category = selectObj()['category']; var categoryVal = stdata['categoryVal']; category.val(categoryVal); var file = String(category.val()); var url = ajaxPath(); var data = { area1 : category.val() }; areaAjax(url,file,data,TYPE.INIT_VALUE); } //市町村選択の初期値 function setInitSelectBoxArea(){ var keeptime = getLstroge('keeptime'); if (keeptime == null ) { return false; } keeptime = JSON.parse(keeptime); var stdata = keeptime['value']; var area = selectObj()['area']; var areaVal = stdata['areaVal']; var areaText = stdata['area']; area.val(areaVal); myareaWrite(areaText); if(typeof changeCoordZoom == 'function'){ changeCoordZoom(areaText); } if(typeof changeViewImage == 'function'){ changeViewImage(areaVal,areaText); } openCityList(areaVal); resetTimer(); } $(document).ready(function(){ if(true){ classname = '.info_table2'; }else{ classname = '.info_table'; } if("".length > 0){ myareaWrite(""); }else{ selectCategory(); selectArea(); selectCategoryInit(); } if(!true){ $(".pld").hide(); } if(!true){ $(".btn_detail").hide(); } if(!false){ $(".pld").addClass("pld3"); $("#selectShibu").hide(); $("#selectShibu2").hide(); $("#area_category").hide(); $("#area_category:after").hide(); $(".myarea").addClass("myarea3"); } });
地図の種類
'; } } legend.innerHTML += ''; } legend.innerHTML += '
'; // 凡例エリアの作成 legendArea = L.control({position: 'bottomright'}); legendArea.onAdd = function(){ return legend; } legendArea.addTo(map); } // 初期表示レイヤ設定 if(dispLayerKind.length > 0){ // 表示レイヤが既に設定されている場合は表示 changeLayerKind(dispLayerKind); }else{ var defaultLayer = '1'; if(defaultLayer.length > 0 ){ changeLayerKind(defaultLayer); } } // 表示市町村名が設定されている時は移動 if(dispCityName.length > 0){ changeCoordZoom(dispCityName); dispCityName = ''; } // 引数で初期表示レイヤ設定時は表示 var layerKind = getParam('lk'); var layerKindList = null; if(layerKind != null && layerKind.length > 0){ changeLayerKind(layerKind); layerKindList = layerKind.split(','); } // レイヤコントロール利用フラグチェック if(!false){ // 初期化終了 initDone = true; return; } // レイヤコントロールの生成 var overlayList = []; var overlayWorkMap = {}; for(var i = 0 ; i < layerMasterList.length ; i++){ var layerMaster = layerMasterList[i]; // まずは下地を作る if(layerMaster.ParentID__c == null){ // ルートの場合 overlayMaps = { label: layerMaster.Name, selectAllCheckbox: layerMaster.canLayerChange__c, children: [] }; overlayWorkMap[layerMaster.ID__c] = overlayMaps; }else if(layerMaster.DispTargetFlag__c){ // レイヤ(リーフ)の場合 if(layerMaster.kakudaiDispTarget__c){ // 発令区域情報を表示する設定であれば、拡大地図画面では発令区域を表示 if (layerMaster.LayerKind__c == LAYER_KIND.HATSUREIKUIKI) { if (DISPLAY_HATSUREIKUIKI_FLG == 'true') { var overlay = { label: '避難情報', layer: layers[layerMaster.LayerKind__c], layerFlg: true, parentId: layerMaster.ParentID__c } overlayList.push(overlay); if (layerKindList != null) { for(var j = 0 ; j < layerKindList.length ; j++){ if (layerMaster.LayerKind__c == layerKindList[j]) { dispLayer(layers[layerMaster.LayerKind__c]); j = layerKindList.lengt; } } } } } else if (layerMaster.LayerKind__c == LAYER_KIND.HINANKANKOKU_INFO) { if (DISPLAY_HATSUREIKUIKI_FLG == 'false') { var overlay = { label: layerMaster.Name, layer: layers[layerMaster.LayerKind__c], layerFlg: true, parentId: layerMaster.ParentID__c } overlayList.push(overlay); if (layerKindList != null) { for(var j = 0 ; j < layerKindList.length ; j++){ if (layerMaster.LayerKind__c == layerKindList[j]) { dispLayer(layers[layerMaster.LayerKind__c]); j = layerKindList.lengt; } } } } } else { var overlay = { label: layerMaster.Name, layer: layers[layerMaster.LayerKind__c], layerFlg: true, parentId: layerMaster.ParentID__c } overlayList.push(overlay); if (layerKindList != null) { for(var j = 0 ; j < layerKindList.length ; j++){ if (layerMaster.LayerKind__c == layerKindList[j]) { dispLayer(layers[layerMaster.LayerKind__c]); j = layerKindList.lengt; } } } } } }else{ // ノードの場合 var overlay = { label: layerMaster.Name, selectAllCheckbox: layerMaster.canLayerChange__c, layer: layers[layerMaster.LayerKind__c], children: [], Id: layerMaster.ID__c, parentId: layerMaster.ParentID__c, collapsed: true } overlayList.push(overlay); overlayWorkMap[layerMaster.ID__c] = overlay; } } // 次にツリーを形成していく for(var i = 0 ; i < overlayList.length ; i++){ var overlay = overlayList[i]; var parentlay = overlayWorkMap[overlay.parentId]; if(parentlay != null){ parentlay['children'].push(overlay); } } layerSelectControl = L.control.layers.tree(null, overlayMaps,{position:'topleft',collapsed:true}); L.DomEvent.disableScrollPropagation(layerSelectControl); layerSelectControl.addTo(map); // mouseenter,mouseleaveによるレイヤ選択ダイアログのONOFFを抑制 L.DomEvent.off(layerSelectControl.getContainer(),{mouseleave: layerSelectControl.collapse},layerSelectControl); L.DomEvent.off(layerSelectControl.getContainer(),{mouseenter: layerSelectControl.expand},layerSelectControl); // ポップアップ表示時にレイヤ選択ダイアログを閉じる map.on('popupopen',function(e){ layerSelectControl.collapse(); }); // 凡例クリック時にレイヤ選択ダイアログを閉じる if(legendArea != null){ L.DomEvent.on(legendArea.getContainer(),{click: layerSelectControl.collapse},layerSelectControl); } layerSelectControl.expand(); // 初期化終了 initDone = true; } /** * 凡例表示ソート用 * * @param 比較対象A * @param 比較対象B */ function compareLegendDisp(a,b){ return a.LegendDispOrder__c - b.LegendDispOrder__c; } /** * Salesforceデータ取得 */ function LoadSalesforceData(layerKind){ // すでに取得している場合は無視 if( layerDataLoaded[layerKind] == true){ return; } layerDataLoaded[layerKind] = true; pleaseWait(); Visualforce.remoting.Manager.invokeAction( 'P_PUB_CL_MapCtrl.GetSalesforceData',layerKind, function(result,event){ // 結果の確認 if ( !event.status ) { ajaxOnFailure( 'GetSalesforceData', event.message ); waitOver(); return; } if ( !result.status ) { ajaxOnFailure( 'GetSalesforceData', result.message ); waitOver(); return; } // 雨量の取得 if(result.uryoList != null){ suiboUryoList = result.uryoList; } if(result.uryoUpdateTime != null){ suiboUryoUpdateTime = result.uryoUpdateTime; } // 水位の取得 if(result.suiiList != null){ suiboSuiiList = result.suiiList; } if(result.suiiUpdateTime != null){ suiboSuiiUpdateTime = result.suiiUpdateTime; } // ダムの取得 if(result.damList != null){ suiboDamList = result.damList; } if(result.damUpdateTime != null){ suiboDamUpdateTime = result.damUpdateTime; } // 気象注警報の取得 if(result.kishouWarningList != null){ kishouWarningList = result.kishouWarningList; } if(result.kishouUpdateTime != null){ kishouUpdateTime = result.kishouUpdateTime; } // 避難勧告情報の取得 if(result.hinankankokuList != null){ hinankankokuList = result.hinankankokuList; } if(result.hinankankokuUpdateTime != null){ hinankankokuUpdateTime = result.hinankankokuUpdateTime; } // 発令区域情報の取得 if (result.hatsureikuikiTopoList != null) { hatsureikuikiTopoList = result.hatsureikuikiTopoList; } if(result.hatsureikuikiColorList != null) { hatsureikuikiColorList = result.hatsureikuikiColorList; } if(result.hatsureikuikiTextMap != null) { hatsureiShubetsuMapping = result.hatsureikuikiTextMap; } // 避難所情報の取得 if(result.hinanjyoList != null){ hinanjyoList = result.hinanjyoList; } if(result.hinanjyoUpdateTime != null){ hinanjyoUpdateTime = result.hinanjyoUpdateTime; } // 地震情報の取得 if(result.earthquakeList != null){ earthquakeList = result.earthquakeList; } if(result.earthquakeUpdateTime != null){ earthquakeUpdateTime = result.earthquakeUpdateTime; } // 津波情報の取得 if(result.tsunamiList != null){ tsunamiList = result.tsunamiList; } if(result.tsunamiUpdateTime != null){ tsunamiUpdateTime = result.tsunamiUpdateTime; } // 土砂災害警戒情報の取得 if(result.doshakeikaiList != null){ doshakeikaiList = result.doshakeikaiList; } if(result.doshakeikaiUpdateTime != null){ doshakeikaiUpdateTime = result.doshakeikaiUpdateTime; } // 火山・噴火警報情報の取得 if(result.kazanPointList != null){ kazanPointList = result.kazanPointList; } if(result.volcWarnList != null){ volcWarnList = result.volcWarnList; } if(result.kazanUpdateTime != null){ kazanUpdateTime = result.kazanUpdateTime; } // 潮位情報の取得 if(result.chouiList != null){ suiboChouiList = result.chouiList; } if(result.chouiUpdateTime != null){ suiboChouiUpdateTime = result.chouiUpdateTime; } // 観測所震度情報の取得 if(result.shindoList != null){ shindoList = result.shindoList; } if(result.shindoUpdateTime != null){ shindoUpdateTime = result.shindoUpdateTime; } // 避難所ポイント情報の取得 if(result.hinanjyoPointList != null){ hinanjyoPointList = result.hinanjyoPointList } if(result.hinanjyoPointUpdateTime != null){ hinanjyoPointUpdateTime = result.hinanjyoPointUpdateTime; } // 避難所(指定避難所) if(result.hinanjyoMasterShelter != null){ hinanjyoMasterShelter = result.hinanjyoMasterShelter; } // 避難所(指定緊急避難場所兼避難所) if(result.hinanjyoMasterAreaShelter != null){ hinanjyoMasterAreaShelter = result.hinanjyoMasterAreaShelter; } // 避難所(指定緊急避難場所) if(result.hinanjyoMasterArea != null){ hinanjyoMasterArea = result.hinanjyoMasterArea; } // 避難所(指定なし) if(result.hinanjyoMasterNA != null){ hinanjyoMasterNA = result.hinanjyoMasterNA; } // 道路規制 if(result.roadregulation != null){ roadregulation = result.roadregulation; } if(result.roadregulationUpdateTime != null){ roadregulationUpdateTime = result.roadregulationUpdateTime; } //警戒体制情報 if(result.keikaiList0 != null) { keikaiInfoList0 = result.keikaiList0; } if(result.keikaiUpdateTime0 != null) { keikaiInfoUpdateTime0 = result.keikaiUpdateTime0; } //301 if(result.keikaiList1 != null) { keikaiInfoList1 = result.keikaiList1; } if(result.keikaiUpdateTime1 != null) { keikaiInfoUpdateTime1 = result.keikaiUpdateTime1; } //302 if(result.keikaiList2 != null) { keikaiInfoList2 = result.keikaiList2; } if(result.keikaiUpdateTime2 != null) { keikaiInfoUpdateTime2 = result.keikaiUpdateTime2; } //303 if(result.keikaiList3 != null) { keikaiInfoList3 = result.keikaiList3; } if(result.keikaiUpdateTime3 != null) { keikaiInfoUpdateTime3 = result.keikaiUpdateTime3; } //304 if(result.keikaiList4 != null) { keikaiInfoList4 = result.keikaiList4; } if(result.keikaiUpdateTime4 != null) { keikaiInfoUpdateTime4 = result.keikaiUpdateTime4; } //305 if(result.keikaiList5 != null) { keikaiInfoList5 = result.keikaiList5; } if(result.keikaiUpdateTime5 != null) { keikaiInfoUpdateTime5 = result.keikaiUpdateTime5; } // ラスタ複数画像対応 var kindList = layerKind.split(','); for(var i = 0 ; i < kindList; i ++){ var kind = kindList[i]; if(result[kind] != null){ rasterImageMap[kind] = result[kind]; } } // データ取得後処理 onAfterLoadSalesforceData(layerKind); },{escape:false} ); } /** * Salesforceデータ取得後処理 */ function onAfterLoadSalesforceData(layerKinds){ try{ var kindList = layerKinds.split(','); for(var i = 0 ; i < kindList.length ; i++){ var layerKind = kindList[i]; var layerMaster = layerKindMap[layerKind]; if (typeof layerMaster === "undefined") { waitOver(); continue; } if ( layerMaster.LayerKind__c == null ) { waitOver(); continue; } var callback; switch(layerMaster.LayerKind__c){ case LAYER_KIND.KISHOU_INFO: // 気象注警報レイヤ取得(静的リソースに定義) callback = function(useTopo, result) { makeKishouInfoLayer(useTopo, result); } drowLayer(layerMaster.Name, callback); break; case LAYER_KIND.URYO_INFO: // 雨量情報レイヤ取得(静的リソースに定義) makeUryoInfoLayer(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.SUII_INFO: // 水位情報レイヤ取得(静的リソースに定義) makeSuiiInfoLayer(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.HINANKANKOKU_INFO: // 避難勧告レイヤ取得(静的リソースに定義) callback = function(useTopo, result) { makeHinanKankokuLayer(useTopo, result); } drowLayer(layerMaster.Name, callback); break; case LAYER_KIND.HATSUREIKUIKI: // 発令区域のポリゴン表示(避難情報レイヤとして表示) makeHatsureiKuikiMapInfoLayer(DISPLAY_KEIKAIKUIKI_FLG, DISPLAY_HINAN_KAIJO_FLG, DISPLAY_ALERT_LV_PATTERN); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.HINANJYO_INFO: // 避難所レイヤ取得(静的リソースに定義) callback = function(useTopo, result) { makeHinanjyoLayer(useTopo, result); } drowLayer(layerMaster.Name, callback); break; case LAYER_KIND.EARTHQUAKE_INFO: // 地震レイヤ取得(静的リソースに定義) callback = function(useTopo, result) { makeEarthquakeLayer(useTopo, result); } drowLayer(layerMaster.Name, callback); break; case LAYER_KIND.TSUNAMI_INFO: // 津波レイヤ取得(静的リソースに定義) callback = function(useTopo, result) { makeTsunamiLayer(useTopo, result); } drowLayer(layerMaster.Name, callback); break; case LAYER_KIND.DOSHAKEIKAI_INFO: // 土砂警戒レイヤ取得(静的リソースに定義) callback = function(useTopo, result) { makeDoshakeikaiLayer(useTopo, result); } drowLayer(layerMaster.Name, callback); break; case LAYER_KIND.KAZAN_INFO: // 火山レイヤ取得(静的リソースに定義) makeKazanInfoLayer(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.VOLCWARNING_INFO: // 噴火警報レイヤ取得(静的リソースに定義) callback = function(useTopo, result) { makeVolcwarninguInfoLayer(useTopo, result); } drowLayer(layerMaster.Name, callback); break; case LAYER_KIND.CHOUI_INFO: // 潮位情報レイヤ取得(静的リソースに定義) makeChouiInfoLayer(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.SHINDO_INFO: // 観測所震度情報レイヤ取得(静的リソースに定義) makeShindoInfoLayer(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.HINANJYO_POINT_INFO: // 避難所ポイントレイヤ取得(静的リソースに定義) makeHinanjyoPointInfoLayer(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c,targetId,16,true); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.HINANJYO_MASTER_SHELTER: // 避難所(指定避難所) makeHinanjyoMasterLayer(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c,targetId,SHITEI_KUBUN.SHELTER); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.HINANJYO_MASTER_AREA_SHELTER: // 避難所(指定緊急避難場所兼避難所) makeHinanjyoMasterLayer(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c,targetId,SHITEI_KUBUN.AREA_SHELTER); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.HINANJYO_MASTER_AREA: // 避難所(指定緊急避難場所) makeHinanjyoMasterLayer(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c,targetId,SHITEI_KUBUN.AREA); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.HINANJYO_MASTER_NA: // 避難所(指定なし) makeHinanjyoMasterLayer(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c,targetId,SHITEI_KUBUN.NA); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.DAM_INFO: // ダム情報レイヤ取得(静的リソースに定義) makeDamInfoLayer(layerMaster.Legends__r, layerMaster.IconWidth__c, layerMaster.IconHeight__c); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.ROAD_REGULATION: //道路規制情報取得 onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.HONDA_INFO: // HONDA通行実績レイヤ取得(静的リソースに定義) hondaMarkers = makeHONDATrafficLayer('4932,5032,5033,5132,5133'); layers[layerMaster.LayerKind__c].clearLayers(); for (var i = 0; i < hondaMarkers.length; i++) { layers[layerMaster.LayerKind__c].addLayer(hondaMarkers[i]) } onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.KEIKAI_INFO: //警戒体制情報取得 makeKeikaitaiseiLayer1(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c,LAYER_KIND.KEIKAI_INFO); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.KEIKAI_INFO1: makeKeikaitaiseiLayer1(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c,LAYER_KIND.KEIKAI_INFO1); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.KEIKAI_INFO2: makeKeikaitaiseiLayer1(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c,LAYER_KIND.KEIKAI_INFO2); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.KEIKAI_INFO3: makeKeikaitaiseiLayer1(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c,LAYER_KIND.KEIKAI_INFO3); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.KEIKAI_INFO4: makeKeikaitaiseiLayer1(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c,LAYER_KIND.KEIKAI_INFO4); onAfterMapLoaded(layerMaster.LayerKind__c); break; case LAYER_KIND.KEIKAI_INFO5: makeKeikaitaiseiLayer1(layerMaster.Legends__r,layerMaster.IconWidth__c,layerMaster.IconHeight__c,LAYER_KIND.KEIKAI_INFO5); onAfterMapLoaded(layerMaster.LayerKind__c); break; default: // 業務に特化しないレイヤの場合(現状はイメージレイヤ) var rasterImageList = rasterImageMap[layerMaster.LayerKind__c]; var rasterList = []; if (typeof rasterImageList === "undefined") { //レイヤが存在しない場合(全選択用チェックボックスなど) break; } else { // 各画像用のイメージレイヤを作成 for(var i = 0 ; i < rasterImageList.length ; i++){ var rasterImage = rasterImageList[i]; rasterList.push( L.imageOverlay(rasterImage.ImageURL__c, [ [Number(rasterImage.bottomLat__c),Number(rasterImage.leftLng__c)], [Number(rasterImage.topLat__c),Number(rasterImage.rightLng__c)] ], { opacity:Number(layerMaster.Opacity__c) }) ); } layers[layerMaster.LayerKind__c] = L.layerGroup(rasterList); onAfterMapLoaded(layerMaster.LayerKind__c); break; } } } }catch(e){ ajaxOnFailure('onAfterLoadSalesforceData',e); waitOver(); } } /** * レイヤ表示処理 */ function drowLayer(layerName, callbackFunc) { // カスタムメタデータから図形取得しLayerMakerを呼出す if(TOPOJSON_USE_FLG == 'true'){ Visualforce.remoting.Manager.invokeAction('P_PUB_CL_MapCtrl.GetAreasTopoJson', layerName, function(result, event){ if(!event.status){ ajaxOnFailure('P_PUB_CL_MapCtrl', event.message); waitOver(); return; } callbackFunc(TOPOJSON_USE_FLG, result); }, {escape : false}); } else { callbackFunc(TOPOJSON_USE_FLG, null); } } /** * 道路規制(GeoJson)読み込み処理 */ var layerGroup = new L.LayerGroup(); var RoadGeoJson; var GeoJsonFlg = false; function drowGeoJson() { if(GeoJsonFlg){ return; } layerGroup = new L.LayerGroup(); RoadGeoJson = ""; Visualforce.remoting.Manager.invokeAction('P_PUB_CL_MapCtrl.GetRoadGeoJson', function(result, event){ RoadGeoJson = L.geoJson(result,{ pointToLayer: function (feature, latlng) { if (feature.properties._iconUrl !== "") { icn = L.icon({ iconUrl: feature.properties._iconUrl, iconSize: [20, 20] }); } return L.marker(latlng, {icon: icn}); },onEachFeature: onEachFeature }); layerGroup.addTo(map); layerGroup.addLayer(RoadGeoJson); }, {escape : false}); GeoJsonFlg = true; } function onEachFeature(feature, layer) { makeRoadRegulationPointInfoLayer(feature, layer); } function removeMarkers(){ map.removeLayer(layerGroup); for(var i = 0 ; i < layerLoadedMap.length ; i++){ if(layerLoadedMap[i] == 19){ layerLoadedMap.splice(i, 1); } } GeoJsonFlg = false; } /** * 地図ロード後処理 */ function onAfterMapLoaded(loadedKind){ layerLoadedMap[loadedKind] = true; // 表示要求全てのレイヤが準備できていない場合は処理終了 var kindList = dispLayerKind.split(',') for(var i = 0 ; i < kindList.length ; i++){ if(layerLoadedMap[kindList[i]] != true){ return; } } changeLayerKind(dispLayerKind); // ポップアップ対象がある場合はポップアップ表示 if(popupItem != null){ popupItem.openPopup(); } waitOver(); } /** * レイヤ種別の変更(レイヤ表示は全てこのメソッドを通る) * * @param 地図種別 */ function changeLayerKind(targetKinds){ // 表示レイヤ種別の設定 dispLayerKind = targetKinds; // 既にタイマー設定している場合はタイマー停止 if(changeLayerTimer!= null){ clearTimeout(changeLayerTimer); changeLayerTimer = null; } if(!initDone){ // 初期化終了していない場合はタイマーで再度呼び出し changeLayerTimer= setTimeout(function(targetKinds){ changeLayerKind(targetKinds); },0,targetKinds); return; } // レイヤ変更前のローディングを解除する waitOver(); // レイヤ選択コントロール未使用の場合は最初にレイヤ非表示、拡大マップリンク修正を実施する if(!false){ // 全てのレイヤを非表示にしてから目的のレイヤを表示する for( key in layers){ hideLayer(layers[key]); hideLegend(key); removeMarkers(); } // 拡大マップリンク修正 changeKakudaiMapLink(); } // 種別は複数来ることがある var kindList = targetKinds.split(','); if(layerLoadedMap[kindList[0]] != true){ // 複数同時表示レイヤは基本複数同時に来るので先頭が未作成の場合は全てを作成しなおす LoadSalesforceData(targetKinds); return; } // 指定レイヤの表示 for(var i = 0 ; i < kindList.length ; i++){ dispLayer(layers[kindList[i]]); showLegend(kindList[i]); layerDispStatus[kindList[i]] = true; if(kindList[i] == 19){ drowGeoJson(); } } // レイヤ選択コントロール未使用の場合は更新日時設定を行う if(!false){ var info_update = ''; switch(kindList[0]){ case LAYER_KIND.KISHOU_INFO: info_update = kishouUpdateTime; break; case LAYER_KIND.KISHOU_DOSHA: break; case LAYER_KIND.SUII_INFO: info_update = suiboSuiiUpdateTime; break; case LAYER_KIND.URYO_INFO: info_update = suiboUryoUpdateTime; break; case LAYER_KIND.HINANKANKOKU_INFO: info_update = hinankankokuUpdateTime; break; case LAYER_KIND.HINANJYO_INFO: info_update = hinanjyoUpdateTime; break; case LAYER_KIND.EARTHQUAKE_INFO: info_update = earthquakeUpdateTime; break; case LAYER_KIND.TSUNAMI_INFO: // info_update = tsunamiUpdateTime; break; case LAYER_KIND.DOSHAKEIKAI_INFO: info_update = doshakeikaiUpdateTime; break; case LAYER_KIND.KAZAN_INFO: info_update = kazanUpdateTime; break; case LAYER_KIND.VOLCWARNING_INFO: info_update = kazanUpdateTime; break; case LAYER_KIND.CHOUI_INFO: info_update = suiboChouiUpdateTime; break; case LAYER_KIND.SHINDO_INFO: info_update = shindoUpdateTime; break; case LAYER_KIND.HINANJYO_POINT_INFO: info_update = hinanjyoPointUpdateTime; break; case LAYER_KIND.DAM_INFO: info_update = suiboDamUpdateTime; break; case LAYER_KIND.ROAD_REGULATION: info_update = roadregulationUpdateTime; break; } // 更新日時の更新 $('#info_update_' + kindList[0]).text(info_update); } } /** * マップイベント定義 * */ function setMapEvent(){ // レイヤON map.on('overlayadd',function(e){ var layerKind = layerMap[e.layer.id]; // レイヤ変更イベント呼び出し(内部で凡例も表示) changeLayerKind(layerKind); var kindLists = layerKind.split(','); for(var i = 0 ; i < kindLists.length ; i++){ if(kindLists[i] == 19){ drowGeoJson(); } } }); // レイヤOFF map.on('overlayremove',function(e){ var layerKind = layerMap[e.layer.id]; layerDispStatus[layerKind] = false; // レイヤOFF hideLayer(layers[layerKind]); // 凡例OFF hideLegend(layerKind); if(layerKind == 19){ removeMarkers(); } if(layerKind == LAYER_KIND.HATSUREIKUIKI){ popupItem = null; } }); // 地図移動 map.on('moveend',function(e){ // 拡大マップリンク修正 changeKakudaiMapLink(); }); // ズームレベル変更 map.on('zoomend',function(e){ // 拡大マップリンク修正 changeKakudaiMapLink(); }); } /** * 地図表示位置・ズームレベル変更 * * @param 市町村名 */ function changeCoordZoom(cityName){ if(!makeMapDone){ viewCityName = cityName; return; } // ポータル市町村リストが空の場合はまだ情報が未取得なので、ロード後にジャンプするようにする if(portalCityList.length == 0){ dispCityName = cityName; return; } // 市町村に紐づく表示位置・ズームレベルを設定する for(var i = 0 ; i < portalCityList.length ; i++){ var item = portalCityList[i]; if(item.CityName__c == cityName){ map.setView([item.LatitudeWGS84__c,item.LongitudeWGS84__c],item.ZoomLevel__c); break; } } } /** * 地図表示位置・ズームレベル変更 * * @param 市町村コード */ function changeCoordZoomCityCode(cityCode){ var citymaster = []; for(var i = 0 ; i < CityMasterList.length ; i++){ var item = CityMasterList[i]; if(item.CityCode__c == cityCode){ citymaster = item; break; } } if(!makeMapDone){ viewCityName = citymaster.Name; return; } // ポータル市町村リストが空の場合はまだ情報が未取得なので、ロード後にジャンプするようにする if(portalCityList.length == 0){ dispCityName = citymaster.Name; return; } // 市町村に紐づく表示位置・ズームレベルを設定する for(var i = 0 ; i < portalCityList.length ; i++){ var item = portalCityList[i]; if(item.CityName__c == citymaster.Name){ map.setView([item.LatitudeWGS84__c,item.LongitudeWGS84__c],item.ZoomLevel__c); break; } } } /** * 拡大地図リンク変更 */ function changeKakudaiMapLink(){ if(!makeMapDone){ return; } // 現在地の取得 var mapCenter = map.getCenter(); var mapZoom = map.getZoom(); var linkLayerKind = dispLayerKind; if (DISPLAY_HATSUREIKUIKI_FLG == 'true') { if (dispLayerKind == LAYER_KIND.HINANKANKOKU_INFO) { linkLayerKind = LAYER_KIND.HATSUREIKUIKI; } } // ズームレベルを矯正 if (linkLayerKind == LAYER_KIND.HATSUREIKUIKI ) { mapZoom = 13; } // 拡大マップへのリンクを修正する $('#kakudaiMapLink').attr("href" , '/P_PUB_VF_kakudaiMap' + '?lk=' + linkLayerKind + '&lat=' + mapCenter['lat'] + '&lng=' + mapCenter['lng'] + '&zoom=' + mapZoom); $('#kakudaiMapLink2').attr("href" , '/P_PUB_VF_kakudaiMap' + '?lk=' + linkLayerKind + '&lat=' + mapCenter['lat'] + '&lng=' + mapCenter['lng'] + '&zoom=' + mapZoom); } /** * 地図初期化 */ function initMap(){ if(makeMapDone){ // 既に地図作成済みの場合は無視 return; } // 地図部分を作成 makeMap(); if(loadDataDone){ // 既に情報読込済だった場合は後続処理を実施する onAfterLoadSalesforceDataForInit(); } if(viewCityName.length > 0){ changeCoordZoom(viewCityName); changeKakudaiMapLink(); } }
地図を拡大して見る
一覧表示切替

サイドメニュー

ページ上部へ