Previous Page Next Page

オープンソースによる地図表示(Leaflet編)9/9

2019/4/26 by T. Fujita

6、おまけ

 おまけとして、これまで記載した次の項目を集めてみました。 単独でを表示する場合は、 『 Leaflet_Tutrial_601.html 』をクリックして下さい。

1、各種地図の選択:
    画面上部のメニューから選択できるようにしました。
2、オーバーレイ表示の選択:
    画面上部のメニューからラジオボタンにより設定できるようにしました。
3、各種図形表示と保存・読込
  3-1、マーカー
  3-2、直線
  3-3、多角形
  3-4、円形
4、ユーティリティ
  4-1、マーカーのスタイル設定
  4-2、線のスタイル設定
  4-3、緯度・経度のグリッド線表示
    白線あるいは黒線のグリッド表示が選択できます。
  4-4、マウス位置表示
    マウスの位置(緯度・経度)の表示/非表示を選択できます。
  4-5、検索窓表示
    検索窓の表示/非表示を選択できます。
5、その他
  5-1、広域地図表示
  5-2、スケール表示



       おまけの表示例
ここで使用しているアイコン素材は、 FLAT ICON DESIGN および ICOON MONO から取得しており、これらアイコン素材データの著作権は TopeconHeroes が保持しています。




       『 Leaflet_Tutrial_601.html 』のソースファイル内容
0001  <!DOCTYPE html>
0002  <html>
0003  <head>
0004      <title> Leaflet_Tutrial_601.html	2019/4/26	by T. Fujita </title>
0005      <meta charset = "utf-8" />
0006      <link rel = "stylesheet" href = "https://unpkg.com/leaflet@1.4.0/dist/leaflet.css" />
0007      <link rel = "stylesheet" href = "https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
0008      <link rel = "stylesheet" href = "./Plugins/Leaflet-MousePosition-master/src/L.Control.MousePosition.css" />
0009      <link rel = "stylesheet" href = "./Plugins/Leaflet-MiniMap-master/src/Control.MiniMap.css" />
0010      <link rel = "stylesheet" href = "./Plugins/leaflet-control-osm-geocoder-master/Control.OSMGeocoder.css" />
0011      <link rel = "stylesheet" href = "./Plugins/ms-Dropdown-master/css/msdropdown/dd.css" />
0012      <link rel = "stylesheet" href = "./CSS/Leaflet_Graticule.css" />
0013      <link rel = "stylesheet" href = "./CSS/scroll_menu.css" />
0014      <link rel = "stylesheet" href = "./CSS/Original_Style_505.css" />
0015
0016  <style>
0017      html, body {
0018		width: 99%;
0019		height: 98%;
0020		font-size: 14px;
0021		z-index: 0;
0022      }
0023  </style>
0024
0025      <script src = "https://unpkg.com/leaflet@1.4.0/dist/leaflet.js"></script>
0026      <script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
0027      <script src = "https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
0028      <script src = "./Plugins/leaflet-GIBS-master/src/GIBSMetadata.js" ></script>
0029      <script src = "./Plugins/leaflet-GIBS-master/src/GIBSLayer.js" ></script>
0030      <script src = "./Plugins/leaflet-ajax-master/dist/leaflet.ajax.js" ></script>
0031      <script src = "./Plugins/Leaflet-MousePosition-master/src/L.Control.MousePosition.js" ></script>
0032      <script src = "./Plugins/Leaflet-MiniMap-master/src/Control.MiniMap.js" ></script>
0033      <script src = "./Plugins/leaflet-control-osm-geocoder-master/Control.OSMGeocoder_SRC.js" ></script>
0034      <script src = "./Plugins/ms-Dropdown-master/js/msdropdown/jquery.dd.js"></script>
0035      <script src = "./JS/Map_Data_601.JS" ></script>
0036      <script src = "./JS/Leaflet_Graticule.js" ></script>
0037      <script src = "./JS/Dialog_505.js" ></script>
0038      <script>
0039		var Marker_LAT = new Array();
0040		var Marker_LON = new Array();
0041		var Marker_NAM = new Array();
0042		var Marker_LNK = new Array();
0043		var Marker_ICN = new Array();
0044		var Marker_ID = new Array();
0045		var Marker_Drag_flag = new Array();
0046		var Marker_Drag_info = new Array();
0047		var ClickLat = null;
0048		var ClickLon = null;
0049		var Marker_count = 0;
0050		var Marker_ID_count = 0;
0051		var SelectedID;
0052		var Marker_flag = 0;
0053		var Temp_shape, Temp_shape_clone;
0054		var Temp, Temp_LAT, Temp_LON, Temp_NAM, Temp_LNK, Temp_ICN, Temp_ID;
0055		var Temp_Drag_flag, Temp_Drag_info;
0056		var Layer_404 = new Array();
0057		var Layer_404_clone = new Array();
0058
0059		var Lines_shape = new Array();	
0060		var Lines_shape_clone_01 = new Array();
0061		var Lines_shape_clone_02 = new Array();
0062		var Lines_LAT = new Array();
0063		var Lines_LON = new Array();
0064		var Lines_NAM = new Array();
0065		var Lines_LNK = new Array();
0066		var Lines_ICN = new Array();
0067		var Lines_ID = new Array();
0068		var Lines_Marker_ID = new Array();
0069		var Lines_Drag_flag = new Array();
0070		var Lines_Drag_info = new Array();
0071		var Polygons_shape = new Array();
0072		var Polygons_shape_clone_01 = new Array();
0073		var Polygons_shape_clone_02 = new Array();
0074		var Polygons_pos = new Array();
0075		var Polygons_pos_clone_01 = new Array();
0076		var Polygons_pos_clone_02 = new Array();
0077		var Polygons_LAT = new Array();
0078		var Polygons_LON = new Array();
0079		var Polygons_NAM = new Array();
0080		var Polygons_LNK = new Array();
0081		var Polygons_ICN = new Array();
0082		var Polygons_ID = new Array();
0083		var Polygons_Marker_ID = new Array();
0084		var Polygons_Drag_flag = new Array();
0085		var Polygons_Drag_info = new Array();
0086		var Circles_shape = new Array();
0087		var Circles_shape_clone = new Array();
0088		var Circles_LAT = new Array();
0089		var Circles_LON = new Array();
0090		var Circles_RAD = new Array();
0091		var Circles_NAM = new Array();
0092		var Circles_LNK = new Array();
0093		var Circles_ID = new Array();
0094		var Circles_Drag_flag = new Array();
0095		var Circles_Drag_info = new Array();
0096		var Lines_Marker_count = 0;
0097		var Lines_Marker_ID_count = 0;
0098		var Lines_count = 0;
0099		var Lines_ID_count = 0;
0100		var Polygons_Marker_count = 0;
0101		var Polygons_Marker_ID_count = 0;
0102		var Polygons_count = 0;
0103		var Polygons_ID_count = 0;
0104		var Circles_count = 0;
0105		var Circles_ID_count = 0;
0106		var Layer_505_L = new Array();
0107		var Layer_505_L_clone_01 = new Array();
0108		var Layer_505_L_clone_02 = new Array();
0109		var Layer_505_LM = new Array();
0110		var Layer_505_LM_clone = new Array();
0111		var Layer_505_P = new Array();
0112		var Layer_505_P_clone_01 = new Array();
0113		var Layer_505_P_clone_02 = new Array();
0114		var Layer_505_PM = new Array();
0115		var Layer_505_PM_clone = new Array();
0116		var Layer_505_C = new Array();
0117		var Layer_505_C_clone = new Array();
0118		var Dialog_flag_001 = 0;
0119		var Lines_flag = 0;
0120		var Polygons_flag = 0;
0121		var Mouse_Position = L.control.mousePosition( {position:'bottomright'} );
0122		var map;
0123		var Layer_00;
0124
0125		function init() {
0126			map = L.map('map').setView([35.0, 137.0], 6);
0127			Layer_00 = Basic_Map[ 0 ];
0128			map.addLayer( Layer_00 );
0129			L.control.scale().addTo(map);
0130			var osm2 = new L.TileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {minZoom: 0, maxZoom: 15, attribution: 'Map data © OpenStreetMap contributors' });
0131			var miniMap = new L.Control.MiniMap(osm2, { toggleDisplay: true, position: 'bottomleft' }).addTo(map);
0132
0133			map.on('click', function(e) {
0134				ClickLat = e.latlng.lat;
0135				ClickLon = e.latlng.lng;
0136				while(ClickLon < -180) {
0137					ClickLon = ClickLon + 360;
0138				}
0139				while(ClickLon > 180) {
0140					ClickLon = ClickLon - 360;
0141				}
0142				if ( Marker_flag == 1 ) { Leaflet_Marker_401(); }
0143				if ( Marker_flag == 2 ) { Leaflet_Marker_403(); }
0144				if ( Lines_flag >= 1 ) { Leaflet_Lines_501(); };
0145				if ( Polygons_flag >= 1 ) { Leaflet_Polygons_501(); };
0146			});
0147		}
0148
0149		function Leaflet_Marker_400() {			// 初期設定(マーカー単独設置)
0150			ClickLat = null;
0151			ClickLon = null;
0152			Marker_flag = 1;
0153			Lines_flag = 0;
0154			Polygons_flag = 0;
0155		}
0156
0157		function Leaflet_Marker_401() {			// マーカー単独設置
0158		  if(Marker_flag == 1) {
0159			Marker_LAT[ Marker_count ] = ClickLat;
0160			Marker_LON[ Marker_count ] = ClickLon;
0161			Marker_NAM[ Marker_count ] = Set_Text;
0162			Marker_LNK[ Marker_count ] = " ";
0163			Marker_ICN[ Marker_count ] = L.icon({
0164				iconUrl: Icon_Url,
0165				iconSize: [Icon_W, Icon_H],
0166				iconAnchor : [Icon_AW, Icon_AH],
0167				popupAnchor: [Icon_PW, Icon_PH]
0168			});
0169			Marker_ID[ Marker_count ] = "Marker" + Marker_ID_count;
0170			Marker_Drag_flag[ Marker_count ] = true;
0171			Marker_Drag_info[ Marker_count ] = "マウスで移動出来ます。";
0172			Temp = Marker_count;
0173			Marker_setting();
0174			Marker_set();
0175			Layer_404[ Temp ] = Temp_shape;
0176			Layer_404[ Temp ].addTo(map);
0177			Layer_404_clone[ Temp ] = Temp_shape_clone;
0178			Layer_404_clone[ Temp ].addTo(map);
0179			Marker_count = Marker_count + 1;
0180			Marker_ID_count = Marker_ID_count + 1;
0181			Marker_flag = 0;
0182		    }
0183		}
0184
0185		function Leaflet_Marker_402() {			// 初期設定(マーカー連続設置)
0186			ClickLat = null;
0187			ClickLon = null;
0188			Marker_flag = 2;
0189			Lines_flag = 0;
0190			Polygons_flag = 0;
0191		}
0192
0193		function Leaflet_Marker_403() {			// マーカー連続設置
0194		  if(Marker_flag == 2) {
0195			Marker_LAT[ Marker_count ] = ClickLat;
0196			Marker_LON[ Marker_count ] = ClickLon;
0197			Marker_NAM[ Marker_count ] = Set_Text;
0198			Marker_LNK[ Marker_count ] = Set_Link;
0199			Marker_ICN[ Marker_count ] = L.icon({
0200				iconUrl: Icon_Url,
0201				iconSize: [Icon_W, Icon_H],
0202				iconAnchor : [Icon_AW, Icon_AH],
0203				popupAnchor: [Icon_PW, Icon_PH]
0204			});
0205			Marker_ID[ Marker_count ] = "Marker" + Marker_ID_count;
0206			Marker_Drag_flag[ Marker_count ] = true;
0207			Marker_Drag_info[ Marker_count ] = "マウスで移動出来ます。";
0208			Temp = Marker_count;
0209			Marker_setting();
0210			Marker_set();
0211			Layer_404[ Temp ] = Temp_shape;
0212			Layer_404[ Temp ].addTo(map);
0213			Layer_404_clone[ Temp ] = Temp_shape_clone;
0214			Layer_404_clone[ Temp ].addTo(map);
0215			Marker_count = Marker_count + 1;
0216			Marker_ID_count = Marker_ID_count + 1;
0217		    }
0218		}
0219
0220		function Leaflet_Marker_404() {			// マーカー連続設置終了
0221			Marker_flag = 0;
0222		}
0223
0224		function Leaflet_Marker_405() {			// マーカー全消去
0225			for(i = 0; i < Layer_404.length; i++) {
0226				if(Layer_404[i] != null) {
0227					map.removeLayer(Layer_404[i]);
0228				}
0229			}
0230			for(i = 0; i < Layer_404_clone.length; i++) {
0231				if(Layer_404[i] != null) {
0232					map.removeLayer(Layer_404_clone[ i ]);
0233				}
0234			}
0235			Marker_flag = 0;
0236			Marker_count = 0;
0237			Marker_LAT = new Array();
0238			Marker_LON = new Array();
0239			Marker_NAM = new Array();
0240			Marker_LNK = new Array();
0241			Marker_ICN = new Array();
0242		}
0243
0244		function Leaflet_Marker_406() {			// マーカー保存(CSV形式)
0245		    for (i = 0; i <= (Marker_LON.length - 1); i++) {
0246			if( !isNaN(Marker_LON[ i ]) ) {
0247			    while( (Marker_LON[ i ] * 1.0) < -180) {
0248				Marker_LON[ i ] = (Marker_LON[ i ] * 1.0) + 360;
0249			    }
0250			    while( (Marker_LON[ i ] * 1.0) > 180) {
0251				Marker_LON[ i ] = (Marker_LON[ i ] * 1.0) - 360;
0252			    }
0253			}
0254		    }
0255		    if(Marker_LAT[ 0 ] == "LAT(deg.)") {
0256			var CSV_content = [];
0257		    } else {
0258			var CSV_content = "LAT(deg.),LONG(deg.),Name(by utf-8),Link,\r\n";
0259		    }
0260			const aTag = document.createElement('a');
0261			aTag.download = "CSV_Data.csv";
0262			var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
0263			Temp = Marker_LAT.length;
0264			for ( i = 0; i < Temp; i++ ) {
0265				if( Marker_LAT[ i ] != "" && Marker_LON[ i ] != "" ) {
0266				  CSV_content = CSV_content + Marker_LAT[ i ] + "," + Marker_LON[ i ] + "," + Marker_NAM[ i ] + "," + Marker_LNK[ i ] + ",\r\n";
0267				}
0268			}
0269			var blob = new Blob([ bom, CSV_content ], { "type": "text/csv"});
0270			if(window.navigator.msSaveBlob) {
0271			     window.navigator.msSaveBlob(blob, aTag.download);					// for IE
0272			  } else if (window.URL && window.URL.createObjectURL) {
0273				aTag.href = window.URL.createObjectURL(blob);					// for FireFox
0274				document.body.appendChild(aTag);
0275				aTag.click();
0276				document.body.removeChild(aTag);
0277			  } else if (window.webkitURL && window.webkitURL.createObject) {
0278				aTag.href = (window.URL || window.webkitURL).createObjectURL(blob);		// for Chrome
0279				aTag.click();
0280			  } else {
0281				alert("保存に失敗しました!");
0282			  }
0283		}
0284
0285		function Leaflet_Marker_407() {			// マーカー読込(CSV形式)
0286			Dialog_002();
0287		}
0288
0289		function Marker_setting() {			// マーカー設定
0290			Temp_LAT = Marker_LAT[ Temp ] * 1.0;
0291			Temp_LON = Marker_LON[ Temp ] * 1.0;
0292			Temp_NAM = Marker_NAM[ Temp ];
0293			Temp_LNK = Marker_LNK[ Temp ];
0294			Temp_ICN = Marker_ICN[ Temp ];
0295			Temp_ID = Marker_ID[ Temp ];
0296			Temp_Drag_flag = Marker_Drag_flag[ Temp ];
0297			Temp_Drag_info = Marker_Drag_info[ Temp ];
0298			Set_Link = " ";
0299			if(Temp_LNK != undefined ) {
0300			    if( String( Temp_LNK ).length > 5 ) {
0301				Set_Link = "<a href= '" + Temp_LNK + "' target='_blank'> " + Temp_NAM + "情報にリンク</a>";
0302			    }
0303			}
0304		}
0305
0306		function Lines_Marker_setting() {		// 直線用マーカー設定
0307			Temp_LAT = Lines_LAT[ Temp ] * 1.0;
0308			Temp_LON = Lines_LON[ Temp ] * 1.0;
0309			Temp_NAM = Lines_NAM[ Temp ];
0310			Temp_LNK = Lines_LNK[ Temp ];
0311			Temp_ICN = Lines_ICN[ Temp ];
0312			Temp_ID = Lines_Marker_ID[ Temp ];
0313			Temp_Drag_flag = Lines_Drag_flag[ Temp ];
0314			Temp_Drag_info = Lines_Drag_info[ Temp ];
0315			Set_Link = " ";
0316			if(Temp_LNK != undefined ) {
0317			    if( String( Temp_LNK ).length > 5 ) {
0318				Set_Link = "<a href= '" + Temp_LNK + "' target='_blank'> " + Temp_NAM + "情報にリンク</a>";
0319			    }
0320			}
0321	}
0322
0323		function Polygons_Marker_setting() {		// 多角形用マーカー設定
0324			Temp_LAT = Polygons_LAT[ Temp ] * 1.0;
0325			Temp_LON = Polygons_LON[ Temp ] * 1.0;
0326			Temp_NAM = Polygons_NAM[ Temp ];
0327			Temp_LNK = Polygons_LNK[ Temp ];
0328			Temp_ICN = Polygons_ICN[ Temp ];
0329			Temp_ID = Polygons_Marker_ID[ Temp ];
0330			Temp_Drag_flag = Polygons_Drag_flag[ Temp ];
0331			Temp_Drag_info = Polygons_Drag_info[ Temp ];
0332			Set_Link = " ";
0333			if(Temp_LNK != undefined ) {
0334			    if( String( Temp_LNK ).length > 5 ) {
0335				Set_Link = "<a href= '" + Temp_LNK + "' target='_blank'> " + Temp_NAM + "情報にリンク</a>";
0336			    }
0337			}
0338		}
0339
0340		function Marker_set() {				// マーカー設置
0341		  if( !isNaN( Temp_LAT ) && !isNaN( Temp_LON ) ) {
0342		    if( (Temp_LAT !== undefined ) || (Temp_LAT != "") ) {
0343			if( ((Temp_LAT * 1.0) != 0) || ((Temp_LON * 1.0) != 0) ) {
0344			    Temp_shape = L.marker([ Temp_LAT, Temp_LON ],
0345				{icon: Temp_ICN, id: Temp_ID, draggable: Temp_Drag_flag}).bindPopup( Temp_NAM + "<BR>" + Temp_Drag_info + "<BR>" +
0346				 "<p> <input type='button' value='Change this Marker' class='marker-change-button'/></p>" +
0347				 Set_Link + "<p> <input type='button' value='Delete this Marker' class='marker-delete-button'/></p>");
0348			    Temp_shape.on('popupopen', onMarkerOpen ).on('dragend', Dragging);
0349			    if(Temp_LON >= 0) {
0350				Temp_shape_clone = L.marker([ Temp_LAT, (Temp_LON - 360) ],
0351				    {icon: Temp_ICN, id: Temp_ID, draggable: Temp_Drag_flag}).bindPopup( Temp_NAM + "<BR>" + Temp_Drag_info + "<BR>" +
0352				 "<p> <input type='button' value='Change this Marker' class='marker-change-button'/></p>" +
0353				 Set_Link + "<p> <input type='button' value='Delete this Marker' class='marker-delete-button'/></p>");
0354				Temp_shape_clone.on('popupopen', onMarkerOpen ).on('dragend', Dragging);
0355			    } else {
0356				Temp_shape_clone = L.marker([ Temp_LAT, (Temp_LON + 360) ],
0357				    {icon: Temp_ICN, id: Temp_ID, draggable: Temp_Drag_flag}).bindPopup( Temp_NAM + "<BR>" + Temp_Drag_info + "<BR>" +
0358				 "<p> <input type='button' value='Change this Marker' class='marker-change-button'/></p>" +
0359				 Set_Link + "<p> <input type='button' value='Delete this Marker' class='marker-delete-button'/></p>");
0360				Temp_shape_clone.on('popupopen', onMarkerOpen ).on('dragend', Dragging);
0361			    }
0362			}
0363		    }
0364		  }
0365		}
0366
0367		function onMarkerOpen() {			// マーカーをクリックした時に表示する削除ボタンと変更ボタン
0368		    var tempMarker = this;
0369		    SelectedID = tempMarker.options.id;
0370		    $(".marker-delete-button:visible").click(function () {
0371			if(SelectedID.slice(0,4) =="Line") {
0372			    Lines_Marker_DEL(tempMarker);
0373			} else if(SelectedID.slice(0,7) =="Polygon") {
0374			    Polygons_Marker_DEL(tempMarker);
0375			} else {
0376			    Marker_DEL(tempMarker);
0377			}
0378		    });
0379		    $(".marker-change-button:visible").click(function () {
0380			Dialog_flag_001 = 1;
0381			Dialog_001();
0382			Dialog_flag_001 = 0;
0383		    });
0384		}
0385
0386		function Change_Marker() {			// マーカー変更ボタン押下時の処理
0387		    for(i = 0; i <= Marker_count; i++) {
0388			if(SelectedID == Marker_ID[ i ] ) {
0389				Marker_NAM[ i ] = Set_Text;
0390				Marker_ICN[ i ] = L.icon({
0391					iconUrl: Icon_Url,
0392					iconSize: [Icon_W, Icon_H],
0393					iconAnchor : [Icon_AW, Icon_AH],
0394					popupAnchor: [Icon_PW, Icon_PH]
0395				});
0396			}
0397		    }
0398		    for(i = 0; i <= Lines_Marker_count; i++) {
0399			if(SelectedID == Lines_Marker_ID[ i ] ) {
0400				Lines_NAM[ i ] = Set_Text;
0401				Lines_ICN[ i ] = L.icon({
0402					iconUrl: Icon_Url,
0403					iconSize: [Icon_W, Icon_H],
0404					iconAnchor : [Icon_AW, Icon_AH],
0405					popupAnchor: [Icon_PW, Icon_PH]
0406				});
0407			}
0408		    }
0409		    for(i = 0; i <= Polygons_Marker_count; i++) {
0410			if(SelectedID == Polygons_Marker_ID[ i ] ) {
0411				Polygons_NAM[ i ] = Set_Text;
0412				Polygons_ICN[ i ] = L.icon({
0413					iconUrl: Icon_Url,
0414					iconSize: [Icon_W, Icon_H],
0415					iconAnchor : [Icon_AW, Icon_AH],
0416					popupAnchor: [Icon_PW, Icon_PH]
0417				});
0418			}
0419		    }
0420		    Marker_Refresh();
0421		    Lines_Marker_Refresh();
0422		    Polygons_Marker_Refresh();
0423		}
0424
0425		function Marker_DEL(tempMarker) {		// マーカー削除ボタン押下時の処理
0426			var k = 0;
0427			Marker_flag = 0;
0428			Marker_LAT[ Marker_count ] = "";
0429			Marker_LON[ Marker_count ] = "";
0430			Marker_NAM[ Marker_count ] = "";
0431			Marker_LNK[ Marker_count ] = "";
0432			Marker_ICN[ Marker_count ] = "";
0433			Marker_ID[ Marker_count ] = "";
0434			Marker_LAT[ Marker_count + 1 ] = "";
0435			Marker_LON[ Marker_count + 1 ] = "";
0436			Marker_NAM[ Marker_count + 1 ] = "";
0437			Marker_LNK[ Marker_count + 1 ] = "";
0438			Marker_ICN[ Marker_count + 1 ] = "";
0439			Marker_ID[ Marker_count + 1 ] = "";
0440			SelectedID = tempMarker.options.id;
0441			for(i = 0; i <= Marker_count; i++) {
0442				if(SelectedID == Marker_ID[ i ] ) {
0443					for(k = i; k <= Marker_count; k++) {
0444						Marker_LAT[ k ] = Marker_LAT[ k + 1 ];
0445						Marker_LON[ k ] = Marker_LON[ k + 1 ];
0446						Marker_NAM[ k ] = Marker_NAM[ k + 1 ];
0447						Marker_LNK[ k ] = Marker_LNK[ k + 1 ];
0448						Marker_ICN[ k ] = Marker_ICN[ k + 1 ];
0449						Marker_ID[ k ] = Marker_ID[ k + 1 ];
0450						Marker_Drag_flag[ k ] = Marker_Drag_flag[ k + 1 ];
0451						Marker_Drag_info[ k ] = Marker_Drag_info[ k + 1 ];
0452					}
0453				}
0454			}
0455			SelectedID = null;
0456			Marker_Refresh();
0457			Marker_count = Marker_count - 1;
0458			Marker_Refresh();
0459		}
0460
0461		function Lines_Marker_DEL(tempMarker) {		// 直線用マーカーの削除ボタン押下時の処理
0462			var k = 0;
0463			Lines_LAT[ Lines_Marker_count ] = "";
0464			Lines_LON[ Lines_Marker_count ] = "";
0465			Lines_NAM[ Lines_Marker_count ] = "";
0466			Lines_LNK[ Lines_Marker_count ] = "";
0467			Lines_ICN[ Lines_Marker_count ] = "";
0468			Lines_ID[ Lines_Marker_count ] = "";
0469			Lines_LAT[ Lines_Marker_count + 1 ] = "";
0470			Lines_LON[ Lines_Marker_count + 1 ] = "";
0471			Lines_NAM[ Lines_Marker_count + 1 ] = "";
0472			Lines_LNK[ Lines_Marker_count + 1 ] = "";
0473			Lines_ICN[ Lines_Marker_count + 1 ] = "";
0474			Lines_ID[ Lines_Marker_count + 1 ] = "";
0475			SelectedID = tempMarker.options.id;
0476			for(i = 0; i <= Lines_Marker_count; i++) {
0477				if(SelectedID == Lines_Marker_ID[ i ] ) {
0478					for(k = i; k <= Lines_Marker_count; k++) {
0479						Lines_LAT[ k ] = Lines_LAT[ k + 1 ];
0480						Lines_LON[ k ] = Lines_LON[ k + 1 ];
0481						Lines_NAM[ k ] = Lines_NAM[ k + 1 ];
0482						Lines_LNK[ k ] = Lines_LNK[ k + 1 ];
0483						Lines_ICN[ k ] = Lines_ICN[ k + 1 ];
0484						Lines_Marker_ID[ k ] = Lines_Marker_ID[ k + 1 ];
0485						Lines_Drag_flag[ k ] = Lines_Drag_flag[ k + 1 ];
0486						Lines_Drag_info[ k ] = Lines_Drag_info[ k + 1 ];
0487					}
0488				}
0489			}
0490			SelectedID = null;
0491			Lines_Marker_Refresh();
0492			Lines_Marker_count = Lines_Marker_count - 1;
0493			Lines_Marker_Refresh();
0494			Leaflet_Lines_Draw();
0495		}
0496
0497		function Polygons_Marker_DEL(tempMarker) {	// 多角形用マーカーの削除ボタン押下時の処理
0498			var k = 0;
0499			Polygons_LAT[ Polygons_Marker_count ] = "";
0500			Polygons_LON[ Polygons_Marker_count ] = "";
0501			Polygons_NAM[ Polygons_Marker_count ] = "";
0502			Polygons_LNK[ Polygons_Marker_count ] = "";
0503			Polygons_ICN[ Polygons_Marker_count ] = "";
0504			Polygons_ID[ Polygons_Marker_count ] = "";
0505			Polygons_LAT[ Polygons_Marker_count + 1 ] = "";
0506			Polygons_LON[ Polygons_Marker_count + 1 ] = "";
0507			Polygons_NAM[ Polygons_Marker_count + 1 ] = "";
0508			Polygons_LNK[ Polygons_Marker_count + 1 ] = "";
0509			Polygons_ICN[ Polygons_Marker_count + 1 ] = "";
0510			Polygons_ID[ Polygons_Marker_count + 1 ] = "";
0511			SelectedID = tempMarker.options.id;
0512			for(i = 0; i <= Polygons_Marker_count; i++) {
0513				if(SelectedID == Polygons_Marker_ID[ i ] ) {
0514					for(k = i; k <= Polygons_Marker_count; k++) {
0515						Polygons_LAT[ k ] = Polygons_LAT[ k + 1 ];
0516						Polygons_LON[ k ] = Polygons_LON[ k + 1 ];
0517						Polygons_NAM[ k ] = Polygons_NAM[ k + 1 ];
0518						Polygons_LNK[ k ] = Polygons_LNK[ k + 1 ];
0519						Polygons_ICN[ k ] = Polygons_ICN[ k + 1 ];
0520						Polygons_Marker_ID[ k ] = Polygons_Marker_ID[ k + 1 ];
0521						Polygons_Drag_flag[ k ] = Polygons_Drag_flag[ k + 1 ];
0522						Polygons_Drag_info[ k ] = Polygons_Drag_info[ k + 1 ];
0523					}
0524				}
0525			}
0526			SelectedID = null;
0527			Polygons_Marker_Refresh();
0528			Polygons_Marker_count = Polygons_Marker_count - 1;
0529			Polygons_Marker_Refresh();
0530			Leaflet_Polygons_Draw();
0531		}
0532
0533		function Marker_Refresh() {			// マーカー再表示
0534			for(i = 0; i < Layer_404.length; i++) {
0535			    if(Layer_404[ i ] != null) {
0536				map.removeLayer(Layer_404[ i ]);
0537				}
0538			    }
0539			for(i = 0; i < Layer_404_clone.length; i++) {
0540			    if(Layer_404_clone[ i ] != null) {
0541				map.removeLayer(Layer_404_clone[ i ]);
0542			    }
0543			}
0544			for (i = 0; i <= (Marker_count - 1); i++)
0545			{
0546				Temp = i;
0547				Marker_setting();
0548				Marker_set();
0549				Layer_404[ Temp ] = Temp_shape;
0550				Layer_404[ Temp ].addTo(map);
0551				Layer_404_clone[ Temp ] = Temp_shape_clone;
0552				Layer_404_clone[ Temp ].addTo(map);
0553			}
0554		}
0555
0556		function Lines_Marker_Refresh() {		// 直線用マーカー再表示
0557			for(i = 0; i < Layer_505_LM.length; i++) {
0558			    if(Layer_505_LM[ i ] != null) {
0559				map.removeLayer(Layer_505_LM[ i ]);
0560			    }
0561			}
0562			for(i = 0; i < Layer_505_LM_clone.length; i++) {
0563			    if(Layer_505_LM_clone[ i ] != null) {
0564				map.removeLayer(Layer_505_LM_clone[ i ]);
0565			    }
0566			}
0567			for (i = 0; i <= (Lines_Marker_count - 1); i++)
0568			{
0569				Temp = i;
0570				Lines_Marker_setting();
0571				Marker_set();
0572				Layer_505_LM[ Temp ] = Temp_shape;
0573				Layer_505_LM[ Temp ].addTo(map);
0574				Layer_505_LM_clone[ Temp ] = Temp_shape_clone;
0575				Layer_505_LM_clone[ Temp ].addTo(map);
0576			}
0577		}
0578
0579		function Polygons_Marker_Refresh() {		// 多角形用マーカー再表示
0580			for(i = 0; i < Layer_505_PM.length; i++) {
0581			    if(Layer_505_PM[ i ] != null) {
0582				map.removeLayer(Layer_505_PM[ i ]);
0583			    }
0584			}
0585			for(i = 0; i < Layer_505_PM_clone.length; i++) {
0586			    if(Layer_505_PM_clone[ i ] != null) {
0587				map.removeLayer(Layer_505_PM_clone[ i ]);
0588			    }
0589			}
0590			for (i = 0; i <= (Polygons_Marker_count - 1); i++)
0591			{
0592				Temp = i;
0593				Polygons_Marker_setting();
0594				Marker_set();
0595				Layer_505_PM[ Temp ] = Temp_shape;
0596				Layer_505_PM[ Temp ].addTo(map);
0597				Layer_505_PM_clone[ Temp ] = Temp_shape_clone;
0598				Layer_505_PM_clone[ Temp ].addTo(map);
0599			}
0600		}
0601
0602		function Dragging() {				// マーカーをドラッグ時の位置取得
0603			ClickLat = this._latlng.lat;
0604			ClickLon = this._latlng.lng;
0605			SelectedID = this.options.id;
0606			if(SelectedID.slice(0,4) == "Line") {
0607			    for(i = 0; i <= Lines_Marker_count; i++) {
0608				if(SelectedID == Lines_Marker_ID[ i ] ) {
0609					Lines_LAT[ i ] = ClickLat;
0610					Lines_LON[ i ] = ClickLon;
0611				}
0612			    }
0613			    Lines_Marker_Refresh();
0614			    Leaflet_Lines_Draw();
0615			} else if(SelectedID.slice(0,7) == "Polygon") {
0616			    for(i = 0; i <= Polygons_Marker_count; i++) {
0617				if(SelectedID == Polygons_Marker_ID[ i ] ) {
0618					Polygons_LAT[ i ] = ClickLat;
0619					Polygons_LON[ i ] = ClickLon;
0620				}
0621			    }
0622			    Polygons_Marker_Refresh();
0623			    Leaflet_Polygons_Draw();
0624			} else {
0625			    for(i = 0; i <= Marker_count; i++) {
0626				if(SelectedID == Marker_ID[ i ] ) {
0627					Marker_LAT[ i ] = ClickLat;
0628					Marker_LON[ i ] = ClickLon;
0629				}
0630			    }
0631			    Marker_Refresh();
0632			}
0633			SelectedID = null;
0634		}
0635
0636		function Leaflet_Lines_500() {			// 初期設定(直線の設置)
0637			ClickLat = null;
0638			ClickLon = null;
0639			Marker_flag = 0;
0640			Lines_flag = 1;
0641			Polygons_flag = 0;
0642		}
0643
0644		function Leaflet_Lines_501() {			// 直線用マーカーの設置
0645			Lines_LAT[ Lines_Marker_count ] = ClickLat;
0646			Lines_LON[ Lines_Marker_count ] = ClickLon;
0647			Lines_NAM[ Lines_Marker_count ] = Set_Text;
0648			Lines_LNK[ Lines_Marker_count ] = Set_Link;
0649			Lines_ICN[ Lines_Marker_count ] = L.icon({
0650				iconUrl: Icon_Url,
0651				iconSize: [Icon_W, Icon_H],
0652				iconAnchor : [Icon_AW, Icon_AH],
0653				popupAnchor: [Icon_PW, Icon_PH]
0654			});
0655			Lines_Marker_ID[ Lines_Marker_count ] = "Line" + Lines_Marker_ID_count;
0656			Lines_Drag_flag[ Lines_Marker_count ] = true;
0657			Lines_Drag_info[ Lines_Marker_count ] = "マウスで移動出来ます。";
0658			Temp = Lines_Marker_count;
0659			Lines_Marker_setting();
0660			Marker_set();
0661			Layer_505_LM[ Temp ] = Temp_shape;
0662			Layer_505_LM[ Temp ].addTo(map);
0663			Layer_505_LM_clone[ Temp ] = Temp_shape_clone;
0664			Layer_505_LM_clone[ Temp ].addTo(map);
0665			Lines_Marker_count = Lines_Marker_count + 1;
0666			Lines_Marker_ID_count = Lines_Marker_ID_count + 1;
0667			Leaflet_Lines_Draw();
0668		}
0669
0670		function Leaflet_Lines_502() {			// 直線マーカーの設置終了
0671			Lines_flag = 0;
0672			Lines_LAT[ Lines_Marker_count ] = "";
0673			Lines_LON[ Lines_Marker_count ] = "";
0674			Lines_NAM[ Lines_Marker_count ] = "";
0675			Lines_LNK[ Lines_Marker_count ] = "";
0676			Lines_ICN[ Lines_Marker_count ] = "";
0677			Lines_ID[ Lines_Marker_count ] = "";
0678			Lines_Marker_count = Lines_Marker_count + 1;
0679		}
0680
0681		function Leaflet_Lines_503() {			// 直線と直線用マーカーの全消去
0682			for(i = 0; i < Layer_505_LM.length; i++) {
0683				if(Layer_505_LM[i] != null) {
0684					map.removeLayer(Layer_505_LM[i]);
0685				}
0686			}
0687			for(i = 0; i < Layer_505_LM_clone.length; i++) {
0688				if(Layer_505_LM_clone[i] != null) {
0689					map.removeLayer(Layer_505_LM_clone[i]);
0690				}
0691			}
0692			for(i = 0; i < Layer_505_L.length; i++) {
0693				if(Layer_505_L[i] != null) {
0694					map.removeLayer(Layer_505_L[i]);
0695				}
0696			}
0697			for(i = 0; i < Layer_505_L_clone_01.length; i++) {
0698				if(Layer_505_L_clone_01[i] != null) {
0699					map.removeLayer(Layer_505_L_clone_01[i]);
0700				}
0701			}
0702			for(i = 0; i < Layer_505_L_clone_02.length; i++) {
0703				if(Layer_505_L_clone_02[i] != null) {
0704					map.removeLayer(Layer_505_L_clone_02[i]);
0705				}
0706			}
0707			Lines_flag = 0;
0708			Lines_count = 0;
0709			Lines_Marker_count = 0;
0710			Lines_shape = new Array();
0711			Lines_shape_clone_01 = new Array();
0712			Lines_shape_clone_02 = new Array();
0713			Lines_LAT = new Array();	
0714			Lines_LON = new Array();
0715			Lines_NAM = new Array();
0716			Lines_LNK = new Array();
0717			Lines_ICN = new Array();
0718		}
0719
0720		function Leaflet_Lines_504() {			// 直線用マーカーの非表示
0721			for(i = 0; i < Layer_505_LM.length; i++) {
0722				if(Layer_505_LM[i] != null) {
0723					map.removeLayer(Layer_505_LM[i]);
0724				}
0725			}
0726			for(i = 0; i < Layer_505_LM_clone.length; i++) {
0727				if(Layer_505_LM_clone[i] != null) {
0728					map.removeLayer(Layer_505_LM_clone[i]);
0729				}
0730			}
0731		}
0732
0733		function Leaflet_Lines_505() {			// 直線用マーカーの再表示
0734			Lines_Marker_Refresh();
0735		}
0736
0737		function Leaflet_Lines_Draw() {			// 直線の描画
0738		    for (i = 0; i < Layer_505_L.length; i++) {
0739			if(Layer_505_L[i] != null) {
0740			    map.removeLayer(Layer_505_L[i]);
0741			}
0742		    }
0743		    for (i = 0; i < Layer_505_L_clone_01.length; i++) {
0744			if(Layer_505_L_clone_01[i] != null) {
0745			    map.removeLayer(Layer_505_L_clone_01[i]);
0746			}
0747		    }
0748		    for (i = 0; i < Layer_505_L_clone_02.length; i++) {
0749			if(Layer_505_L_clone_02[i] != null) {
0750			    map.removeLayer(Layer_505_L_clone_02[i]);
0751			}
0752		    }
0753		    var Temp_LON_01 = new Array();
0754		    var Temp_LON_02 = new Array();
0755		    for(i = 0; i <= (Lines_Marker_count - 1); i++) {
0756			Temp_LON_01[ i ] = Lines_LON[ i ] * 1.0;
0757			Temp_LON_02[ i ] = Lines_LON[ i ] * 1.0;
0758			if(Lines_LON[ i ] * 1.0 <= 0) {
0759				Temp_LON_01[ i ] = Lines_LON[ i ] * 1.0 + 360;
0760			} else {
0761				Temp_LON_02[ i ] = Lines_LON[ i ] * 1.0 - 360;
0762			}
0763		    }
0764		    for(i = 0; i <= (Lines_Marker_count - 1); i++) {
0765		      if( !isNaN( Lines_LAT[ i ] ) && !isNaN( Lines_LAT[ i + 1 ] ) ) {
0766			if( Math.abs(Lines_LON[ i ] - Lines_LON[ i + 1 ]) <= 180 ) {
0767			   if( (Lines_LAT[ i ] != 0) || (Lines_LON[ i ] != 0) ) {
0768			      if( (Lines_LAT[ i + 1 ] != 0) || (Lines_LON[ i + 1 ] != 0) ) {
0769				    Lines_shape[ Lines_count ] = L.polyline([[ Lines_LAT[ i ], Lines_LON[ i ] ], [ Lines_LAT[ i + 1 ], Lines_LON[ i + 1 ] ]],
0770					{ color: "#"+Selected_Color,
0771					  weight: Line_W,
0772					  opacity: Selected_Opacity,
0773					  dashArray: Line_Type
0774				    });
0775				Layer_505_L[ Lines_count ] = Lines_shape[ Lines_count ];
0776				Layer_505_L[ Lines_count ].addTo(map);
0777			      }
0778			   }
0779			}
0780			if( Math.abs(Temp_LON_01[ i ] - Temp_LON_01[ i + 1 ]) <= 180 ) {
0781			   if( (Lines_LAT[ i ] != 0) || (Temp_LON_01[ i ] != 0) ) {
0782			      if( (Lines_LAT[ i + 1 ] != 0) || (Temp_LON_01[ i + 1 ] != 0) ) {
0783				    Lines_shape_clone_01[ Lines_count ] = L.polyline([[ Lines_LAT[ i ], Temp_LON_01[ i ] ], [ Lines_LAT[ i + 1 ], Temp_LON_01[ i + 1 ] ]],
0784					{ color: "#"+Selected_Color,
0785					  weight: Line_W,
0786					  opacity: Selected_Opacity,
0787					  dashArray: Line_Type
0788				    });
0789				Layer_505_L_clone_01[ Lines_count ] = Lines_shape_clone_01[ Lines_count ];
0790				Layer_505_L_clone_01[ Lines_count ].addTo(map);
0791			      }
0792			   }
0793			}
0794			if( Math.abs(Temp_LON_02[ i ] - Temp_LON_02[ i + 1 ]) <= 180 ) {
0795			   if( (Lines_LAT[ i ] != 0) || (Temp_LON_02[ i ] != 0) ) {
0796			      if( (Lines_LAT[ i + 1 ] != 0) || (Temp_LON_02[ i + 1 ] != 0) ) {
0797				    Lines_shape_clone_02[ Lines_count ] = L.polyline([[ Lines_LAT[ i ], Temp_LON_02[ i ] ], [ Lines_LAT[ i + 1 ], Temp_LON_02[ i + 1 ] ]],
0798					{ color: "#"+Selected_Color,
0799					  weight: Line_W,
0800					  opacity: Selected_Opacity,
0801					  dashArray: Line_Type
0802				    });
0803				    Layer_505_L_clone_02[ Lines_count ] = Lines_shape_clone_02[ Lines_count ];
0804				    Layer_505_L_clone_02[ Lines_count ].addTo(map);
0805			      }
0806			   }
0807			}
0808			Lines_count = Lines_count + 1;
0809		      }
0810		    }
0811		}
0812
0813		function Leaflet_Polygons_500() {		// 初期設定(多角形の設置)
0814			ClickLat = null;
0815			ClickLon = null;
0816			Marker_flag = 0;
0817			Lines_flag = 0;
0818			Polygons_flag = 1;
0819		}
0820
0821		function Leaflet_Polygons_501() {		// 多角形マーカーの設置
0822			Polygons_LAT[ Polygons_Marker_count ] = ClickLat;
0823			Polygons_LON[ Polygons_Marker_count ] = ClickLon;
0824			Polygons_NAM[ Polygons_Marker_count ] = Set_Text;
0825			Polygons_LNK[ Polygons_Marker_count ] = Set_Link;
0826			Polygons_ICN[ Polygons_Marker_count ] = L.icon({
0827				iconUrl: Icon_Url,
0828				iconSize: [Icon_W, Icon_H],
0829				iconAnchor : [Icon_AW, Icon_AH],
0830				popupAnchor: [Icon_PW, Icon_PH]
0831			});
0832			Polygons_Marker_ID[ Polygons_Marker_count ] = "Polygon" + Polygons_Marker_ID_count;
0833			Polygons_Drag_flag[ Polygons_Marker_count ] = true;
0834			Polygons_Drag_info[ Polygons_Marker_count ] = "マウスで移動出来ます。";
0835			Temp = Polygons_Marker_count;
0836			Polygons_Marker_setting();
0837			Marker_set();
0838			Layer_505_PM[ Temp ] = Temp_shape;
0839			Layer_505_PM[ Temp ].addTo(map);
0840			Layer_505_PM_clone[ Temp ] = Temp_shape_clone;
0841			Layer_505_PM_clone[ Temp ].addTo(map);
0842			Polygons_Marker_count = Polygons_Marker_count + 1;
0843			Polygons_Marker_ID_count = Polygons_Marker_ID_count + 1;
0844		}
0845
0846		function Leaflet_Polygons_502() {		// 多角形マーカーの設置終了
0847			Polygons_flag = 0;
0848			Polygons_LAT[ Polygons_Marker_count ] = "";
0849			Polygons_LON[ Polygons_Marker_count ] = "";
0850			Polygons_NAM[ Polygons_Marker_count ] = "";
0851			Polygons_LNK[ Polygons_Marker_count ] = "";
0852			Polygons_ICN[ Polygons_Marker_count ] = "";
0853			Polygons_ID[ Polygons_Marker_count ] = "";
0854			Polygons_Marker_count = Polygons_Marker_count + 1;
0855			Leaflet_Polygons_Draw();
0856		}
0857
0858		function Leaflet_Polygons_503() {		// 多角形と多角形用マーカーの全消去
0859			for(i = 0; i < Layer_505_PM.length; i++) {
0860				if(Layer_505_PM[i] != null) {
0861					map.removeLayer(Layer_505_PM[i]);
0862				}
0863			}
0864			for(i = 0; i < Layer_505_PM_clone.length; i++) {
0865				if(Layer_505_PM_clone[i] != null) {
0866					map.removeLayer(Layer_505_PM_clone[i]);
0867				}
0868			}
0869			for(i = 0; i < Layer_505_P.length; i++) {
0870				if(Layer_505_P[i] != null) {
0871					map.removeLayer(Layer_505_P[i]);
0872				}
0873			}
0874			for(i = 0; i < Layer_505_P_clone_01.length; i++) {
0875				if(Layer_505_P_clone_01[i] != null) {
0876					map.removeLayer(Layer_505_P_clone_01[i]);
0877				}
0878			}
0879			for(i = 0; i < Layer_505_P_clone_02.length; i++) {
0880				if(Layer_505_P_clone_02[i] != null) {
0881					map.removeLayer(Layer_505_P_clone_02[i]);
0882				}
0883			}
0884			Polygons_flag = 0;
0885			Polygons_count = 0;
0886			Polygons_Marker_count = 0;
0887			Polygons_shape = new Array();
0888			Polygons_LAT = new Array();
0889			Polygons_LON = new Array();
0890			Polygons_NAM = new Array();
0891			Polygons_LNK = new Array();
0892			Polygons_ICN = new Array();
0893		}
0894
0895		function Leaflet_Polygons_504() {		// 多角形用マーカーの非表示
0896			for(i = 0; i < Layer_505_PM.length; i++) {
0897				if(Layer_505_PM[i] != null) {
0898					map.removeLayer(Layer_505_PM[i]);
0899				}
0900			}
0901			for(i = 0; i < Layer_505_PM_clone.length; i++) {
0902				if(Layer_505_PM_clone[i] != null) {
0903					map.removeLayer(Layer_505_PM_clone[i]);
0904				}
0905			}
0906		}
0907
0908		function Leaflet_Polygons_505() {		// 多角形用マーカーの再表示
0909			Polygons_Marker_Refresh();
0910		}
0911
0912		function Leaflet_Polygons_Draw() {		// 多角形の描画
0913		    if(Polygons_count != 0) {
0914			for (i = 0; i < Layer_505_P.length; i++) {
0915			    if(Layer_505_P[i] != null) {
0916				map.removeLayer(Layer_505_P[i]);
0917			    }
0918			}
0919			for (i = 0; i < Layer_505_P_clone_01.length; i++) {
0920			    if(Layer_505_P_clone_01[i] != null) {
0921				map.removeLayer(Layer_505_P_clone_01[i]);
0922			    }
0923			}
0924			for (i = 0; i < Layer_505_P_clone_02.length; i++) {
0925			    if(Layer_505_P_clone_02[i] != null) {
0926				map.removeLayer(Layer_505_P_clone_02[i]);
0927			    }
0928			}
0929		    }
0930		    var Temp_LAT = new Array();
0931		    var Temp_LON = new Array();
0932		    var Temp_LON_clone_01 = new Array();
0933		    var Temp_LON_clone_02 = new Array();
0934		    var Temp_flag = new Array();
0935		    var j = 0;
0936		    Polygons_shape = new Array();
0937		    Polygons_shape_clone_01 = new Array();
0938		    Polygons_shape_clone_02 = new Array();
0939		    Polygons_pos = new Array();
0940		    Polygons_pos_clone_01 = new Array();
0941		    Polygons_pos_clone_02 = new Array();
0942		    Temp_flag[ 0 ] = 0;
0943		    for(i = 0; i <= (Polygons_LAT.length - 1); i++) {
0944			if( isNaN( Polygons_LAT[ i ]) || isNaN( Polygons_LON[ i ] ) || ( (Polygons_LAT[ i ] * 1.0 == 0) && (Polygons_LON[ i ] * 1.0 == 0) ) ) {
0945				j = j + 1;
0946				Temp_flag[ j ] = 0;
0947			} else {
0948				if( Math.abs(Polygons_LON[ i ] * 1.0 - Polygons_LON[ i + 1 ] * 1.0 ) > 180) {
0949					Temp_flag[ j ] = Temp_flag[ j ] + 1;
0950				}
0951			}
0952		    }
0953		    j = 0;
0954		    for(i = 0; i <= (Polygons_LAT.length - 1); i++) {
0955			Temp_LAT[ i ] = Polygons_LAT[ i ];
0956			Temp_LON[ i ] = Polygons_LON[ i ];
0957			Temp_LON_clone_01[ i ] = Polygons_LON[ i ];
0958			Temp_LON_clone_02[ i ] = Polygons_LON[ i ];
0959			if( isNaN( Polygons_LAT[ i ]) || isNaN( Polygons_LON[ i ] ) || ( (Polygons_LAT[ i ] * 1.0 == 0) && (Polygons_LON[ i ] * 1.0 == 0) ) ) {
0960				j = j + 1;
0961			} else {
0962				if(Temp_flag[ j ] != 0) {
0963					if(Polygons_LON[ i ] * 1.0 < 0) {
0964						Temp_LON[ i ] = Polygons_LON[ i ] * 1.0 + 360;
0965					}
0966				}
0967			}
0968			Temp_LON_clone_01[ i ] = Temp_LON[ i ] * 1.0 + 360;
0969			Temp_LON_clone_02[ i ] = Temp_LON[ i ] * 1.0 - 360;
0970		    }
0971		    Polygons_pos[ 0 ] = [];
0972		    Polygons_pos_clone_01[ 0 ] = [];
0973		    Polygons_pos_clone_02[ 0 ] = [];
0974		    j = 0;
0975		    for(i = 0; i <= (Temp_LAT.length - 1); i++) {
0976			if( isNaN( Polygons_LAT[ i ]) || isNaN( Polygons_LON[ i ] ) || ( (Polygons_LAT[ i ] * 1.0 == 0) && (Polygons_LON[ i ] * 1.0 == 0) ) ) {
0977				j = j + 1;
0978				Polygons_pos[ j ] = [];
0979				Polygons_pos_clone_01[ j ] = [];
0980				Polygons_pos_clone_02[ j ] = [];
0981			} else {
0982				Temp = Polygons_pos[ j ].push([ Temp_LAT[ i ], Temp_LON[ i ] ]);
0983				Temp = Polygons_pos_clone_01[ j ].push([ Temp_LAT[ i ], (Temp_LON_clone_01[ i ]) ]);
0984				Temp = Polygons_pos_clone_02[ j ].push([ Temp_LAT[ i ], (Temp_LON_clone_02[ i ]) ]);
0985			}
0986		    }
0987		    j = 0;
0988		    for(i = 0; i <= (Polygons_pos.length - 1); i++) {
0989			if(Polygons_pos[ i ].length >= 3) {
0990				Polygons_shape[ j ] = L.polygon([ Polygons_pos[ i ] ],
0991				    { color: "#"+Selected_Color,
0992				      weight: Line_W,
0993				      opacity: Selected_Opacity,
0994				      dashArray: Line_Type,
0995				      fillColor: "#" + Selected_Fill_Color,
0996				      fillopacity: Selected_Fill_Opacity
0997				});
0998				j = j + 1;
0999			}
1000		    }
1001		    for(i = 0; i <= (Polygons_pos_clone_01.length - 1); i++) {
1002			if(Polygons_pos_clone_01[ i ].length >= 3) {
1003				Polygons_shape_clone_01[ i ] = L.polygon([ Polygons_pos_clone_01[ i ] ],
1004				    { color: "#"+Selected_Color,
1005				      weight: Line_W,
1006				      opacity: Selected_Opacity,
1007				      dashArray: Line_Type,
1008				      fillColor: "#" + Selected_Fill_Color,
1009				      fillopacity: Selected_Fill_Opacity
1010				});
1011			}
1012		    }
1013		    for(i = 0; i <= (Polygons_pos_clone_02.length - 1); i++) {
1014			if(Polygons_pos_clone_02[ i ].length >= 3) {
1015				Polygons_shape_clone_02[ i ] = L.polygon([ Polygons_pos_clone_02[ i ] ],
1016				    { color: "#"+Selected_Color,
1017				      weight: Line_W,
1018				      opacity: Selected_Opacity,
1019				      dashArray: Line_Type,
1020				      fillColor: "#" + Selected_Fill_Color,
1021				      fillopacity: Selected_Fill_Opacity
1022				});
1023			}
1024		    }
1025		    for(i = 0; i <= (Polygons_shape.length - 1); i++) {
1026			if(Polygons_shape[ i ] != null) {
1027				Layer_505_P[ i ] = Polygons_shape[ i ];
1028				Layer_505_P[ i ].addTo(map);
1029			}
1030		    }
1031		    for(i = 0; i <= (Polygons_shape_clone_01.length - 1); i++) {
1032			if(Polygons_shape_clone_01[ i ] != null) {
1033				Layer_505_P_clone_01[ i ] = Polygons_shape_clone_01[ i ];
1034				Layer_505_P_clone_01[ i ].addTo(map);
1035			}
1036		    }
1037		    for(i = 0; i <= (Polygons_shape_clone_02.length - 1); i++) {
1038			if(Polygons_shape_clone_02[ i ] != null) {
1039				Layer_505_P_clone_02[ i ] = Polygons_shape_clone_02[ i ];
1040				Layer_505_P_clone_02[ i ].addTo(map);
1041			}
1042		    }
1043		    Polygons_count = Polygons_count + 1;
1044		}
1045
1046		function Leaflet_Circles_500() {		// 円の設置
1047		    Dialog_004();
1048		}
1049
1050		function Leaflet_Circles_501() {		// 円の全消去
1051			for(i = 0; i < Layer_505_C.length; i++) {
1052				if(Layer_505_C[i] != null) {
1053					map.removeLayer(Layer_505_C[i]);
1054				}
1055			}
1056			for(i = 0; i < Layer_505_C_clone.length; i++) {
1057				if(Layer_505_C_clone[i] != null) {
1058					map.removeLayer(Layer_505_C_clone[i]);
1059				}
1060		}
1061			Circles_count = 0;
1062			Circles_shape = new Array();
1063			Circles_shape_clone = new Array();
1064			Circles_LAT = new Array();
1065			Circles_LON = new Array();
1066			Circles_RAD = new Array();
1067			Circles_NAM = new Array();
1068			Circles_LNK = new Array();
1069		}
1070
1071		function Circles_Set(Temp) {			// 円の表示
1072			if(( Circles_RAD[ Temp ] * 1.0 == 0) || isNaN(Circles_RAD[ Temp ]) ) {
1073				alert("データ名: " + Circles_NAM[ Temp ] + "\n" + "円の直径が指定されていません!");
1074				return;
1075			}
1076			Circles_shape[ Temp ] = L.circle([ Circles_LAT[ Temp ], Circles_LON[ Temp ] ], Circles_RAD[ Temp ],
1077			    { color: "#" + Selected_Color,
1078			      fillColor: "#" + Selected_Fill_Color,
1079			      opacity: Selected_Opacity,
1080			      weight: Line_W,
1081			      fillopacity: Selected_Fill_Opacity,
1082			      dashArray: Line_Type,
1083			      id: Circles_ID[ Temp ]
1084			    }).bindPopup(Circles_NAM[ Temp ] + "<BR> <input type='button' value='Delete this circle' class='circle-delete-button'/>");
1085			if(Circles_LON[ Temp ] < 0) {
1086				Circles_shape_clone[ Temp ] = L.circle([ Circles_LAT[ Temp ], (Circles_LON[ Temp ] + 360) ], Circles_RAD[ Temp ],
1087				    { color: "#" + Selected_Color,
1088				      fillColor: "#" + Selected_Fill_Color,
1089				      opacity: Selected_Opacity,
1090				      weight: Line_W,
1091				      fillopacity: Selected_Fill_Opacity,
1092				      dashArray: Line_Type,
1093				      id: Circles_ID[ Temp ]
1094				    }).bindPopup(Circles_NAM[ Temp ] + "<BR> <input type='button' value='Delete this circle' class='circle-delete-button'/>");
1095			} else {
1096				Circles_shape_clone[ Temp ] = L.circle([ Circles_LAT[ Temp ], (Circles_LON[ Temp ] - 360) ], Circles_RAD[ Temp ],
1097				    { color: "#" + Selected_Color,
1098				      fillColor: "#" + Selected_Fill_Color,
1099				      opacity: Selected_Opacity,
1100				      weight: Line_W,
1101				      fillopacity: Selected_Fill_Opacity,
1102				      dashArray: Line_Type,
1103				      id: Circles_ID[ Temp ]
1104				    }).bindPopup(Circles_NAM[ Temp ] + "<BR> <input type='button' value='Delete this circle' class='circle-delete-button'/>");
1105			}
1106			Layer_505_C[ Temp ] = Circles_shape[ Temp ].on('popupopen', onPopupCircle );
1107			Layer_505_C[ Temp ].addTo(map);
1108			Layer_505_C_clone[ Temp ] = Circles_shape_clone[ Temp ].on('popupopen', onPopupCircle );
1109			Layer_505_C_clone[ Temp ].addTo(map);
1110		}
1111
1112		function onPopupCircle() {			// 円の選択削除
1113			var tempFigure = this;
1114			var k = 0;
1115			Circles_LAT[ Circles_count ] = "";
1116			Circles_LON[ Circles_count ] = "";
1117			Circles_RAD[ Circles_count ] = "";
1118			Circles_NAM[ Circles_count ] = "";
1119			Circles_LNK[ Circles_count ] = "";
1120			Circles_ID[ Circles_count ] = "";
1121			Circles_LAT[ Circles_count + 1 ] = "";
1122			Circles_LON[ Circles_count + 1 ] = "";
1123			Circles_RAD[ Circles_count + 1 ] = "";
1124			Circles_NAM[ Circles_count + 1 ] = "";
1125			Circles_LNK[ Circles_count + 1 ] = "";
1126			Circles_ID[ Circles_count + 1 ] = "";
1127			SelectedID = tempFigure.options.id;
1128			$(".circle-delete-button:visible").click(function () {
1129			    for(i = 0; i <= Circles_count; i++) {
1130				if(SelectedID == Circles_ID[ i ] ) {
1131					for(k = i; k <= Circles_count; k++) {
1132						Circles_LAT[ k ] = Circles_LAT[ k + 1 ];
1133						Circles_LON[ k ] = Circles_LON[ k + 1 ];
1134						Circles_RAD[ k ] = Circles_RAD[ k + 1 ];
1135						Circles_NAM[ k ] = Circles_NAM[ k + 1 ];
1136						Circles_LNK[ k ] = Circles_LNK[ k + 1 ];
1137						Circles_ID[ k ] = Circles_ID[ k + 1 ];
1138						Circles_Drag_flag[ k ] = Circles_Drag_flag[ k + 1 ];
1139						Circles_Drag_info[ k ] = Circles_Drag_info[ k + 1 ];
1140					}
1141				}
1142			    }
1143			    SelectedID = null;
1144			    Circles_count = Circles_count - 1;
1145			    Circles_Refresh();
1146			});
1147		}
1148
1149		function Circles_Refresh() {			// 円の再描画
1150			for(i = 0; i < Layer_505_C.length; i++) {
1151			    if(Layer_505_C[ i ] != null) {
1152				map.removeLayer(Layer_505_C[ i ]);
1153			    }
1154			}
1155			for(i = 0; i < Layer_505_C_clone.length; i++) {
1156			    if(Layer_505_C_clone[ i ] != null) {
1157				map.removeLayer(Layer_505_C_clone[ i ]);
1158			    }
1159			}
1160			for (i = 0; i <= (Circles_count - 1); i++)
1161			{
1162				Temp = i;
1163				Circles_Set(Temp);
1164			}
1165		}
1166
1167		function Leaflet_CSV_510() {			// 直線データの保存(CSV形式)
1168		    for (i = 0; i <= (Lines_LON.length - 1); i++) {
1169			if( !isNaN(Lines_LON[ i ]) ) {
1170			    while( (Lines_LON[ i ] * 1.0) < -180) {
1171				Lines_LON[ i ] = (Lines_LON[ i ] * 1.0) + 360;
1172			    }
1173			    while( (Lines_LON[ i ] * 1.0) > 180) {
1174				Lines_LON[ i ] = (Lines_LON[ i ] * 1.0) - 360;
1175			    }
1176			}
1177		    }
1178		    if(Lines_LAT[ 0 ] == "LAT(deg.)") {
1179			var CSV_content = [];
1180		    } else {
1181			var CSV_content = "LAT(deg.),LONG(deg.),Name(by utf-8),Link,\r\n";
1182		    }
1183			const aTag = document.createElement('a');
1184			aTag.download = "CSV_Line_Data.csv";
1185			var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
1186			Temp = Lines_LAT.length - 1;
1187			for ( i = 0; i < Temp; i++ ) {
1188				CSV_content = CSV_content + Lines_LAT[ i ] + "," + Lines_LON[ i ] + "," + Lines_NAM[ i ] + "," + Lines_LNK[ i ] + ",\r\n";
1189			}
1190			var blob = new Blob([ bom, CSV_content ], { "type": "text/csv"});
1191			if(window.navigator.msSaveBlob) {
1192			     window.navigator.msSaveBlob(blob, aTag.download);					// for IE
1193			  } else if (window.URL && window.URL.createObjectURL) {
1194				aTag.href = window.URL.createObjectURL(blob);					// for FireFox
1195				document.body.appendChild(aTag);
1196				aTag.click();
1197				document.body.removeChild(aTag);
1198			  } else if (window.webkitURL && window.webkitURL.createObject) {
1199				aTag.href = (window.URL || window.webkitURL).createObjectURL(blob);		// for Chrome
1200				aTag.click();
1201			  } else {
1202				alert("保存に失敗しました!");
1203			  }
1204		}
1205
1206		function Leaflet_CSV_511() {			// 多角形データの保存(CSV形式)
1207		    for (i = 0; i <= (Polygons_LON.length - 1); i++) {
1208			if( !isNaN(Polygons_LON[ i ]) ) {
1209			    while( (Polygons_LON[ i ] * 1.0) < -180) {
1210				Polygons_LON[ i ] = (Polygons_LON[ i ] * 1.0) + 360;
1211			    }
1212			    while( (Polygons_LON[ i ] * 1.0) > 180) {
1213				Polygons_LON[ i ] = (Polygons_LON[ i ] * 1.0) - 360;
1214			    }
1215			}
1216		    }
1217		    if(Polygons_LAT[ 0 ] == "LAT(deg.)") {
1218			var CSV_content = [];
1219		    } else {
1220			var CSV_content = "LAT(deg.),LONG(deg.),Name(by utf-8),Link,\r\n";
1221		    }
1222			const aTag = document.createElement('a');
1223			aTag.download = "CSV_Polygon_Data.csv";
1224			var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
1225			Temp = Polygons_LAT.length - 1;
1226			for ( i = 0; i < Temp; i++ ) {
1227				CSV_content = CSV_content + Polygons_LAT[ i ] + "," + Polygons_LON[ i ] + "," + Polygons_NAM[ i ] + "," + Polygons_LNK[ i ] + ",\r\n";
1228			}
1229			var blob = new Blob([ bom, CSV_content ], { "type": "text/csv"});
1230			if(window.navigator.msSaveBlob) {
1231			     window.navigator.msSaveBlob(blob, aTag.download);					// for IE
1232			  } else if (window.URL && window.URL.createObjectURL) {
1233				aTag.href = window.URL.createObjectURL(blob);					// for FireFox
1234				document.body.appendChild(aTag);
1235				aTag.click();
1236				document.body.removeChild(aTag);
1237			  } else if (window.webkitURL && window.webkitURL.createObject) {
1238				aTag.href = (window.URL || window.webkitURL).createObjectURL(blob);		// for Chrome
1239				aTag.click();
1240			  } else {
1241				alert("保存に失敗しました!");
1242			  }
1243		}
1244
1245		function Leaflet_CSV_512() {			// 円データの保存(CSV形式)
1246		    for (i = 0; i <= (Circles_LON.length -1); i++) {
1247			if( !isNaN(Circles_LON[ i ]) ) {
1248			    while( (Circles_LON[ i ] * 1.0) < -180) {
1249				Circles_LON[ i ] = (Circles_LON[ i ] * 1.0) + 360;
1250			    }
1251			    while( (Circles_LON[ i ] * 1.0) > 180) {
1252				Circles_LON[ i ] = (Circles_LON[ i ] * 1.0) - 360;
1253			    }
1254			}
1255		    }
1256		    if(Circles_LAT[ 0 ] == "LAT(deg.)") {
1257			var CSV_content = [];
1258		    } else {
1259			var CSV_content = "LAT(deg.),LONG(deg.),Name(by utf-8),Link,Radius,\r\n";
1260		    }
1261			const aTag = document.createElement('a');
1262			aTag.download = "CSV_Circle_Data.csv";
1263			var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
1264			Temp = Circles_LAT.length - 1;
1265			for ( i = 0; i <= Temp; i++ ) {
1266				CSV_content = CSV_content + Circles_LAT[ i ] + "," + Circles_LON[ i ] + "," + Circles_NAM[ i ] + "," + Circles_LNK[ i ] + "," + Circles_RAD[ i ] + ",\r\n";
1267			}
1268			var blob = new Blob([ bom, CSV_content ], { "type": "text/csv"});
1269			if(window.navigator.msSaveBlob) {
1270			     window.navigator.msSaveBlob(blob, aTag.download);					// for IE
1271			  } else if (window.URL && window.URL.createObjectURL) {
1272				aTag.href = window.URL.createObjectURL(blob);					// for FireFox
1273				document.body.appendChild(aTag);
1274				aTag.click();
1275				document.body.removeChild(aTag);
1276			  } else if (window.webkitURL && window.webkitURL.createObject) {
1277				aTag.href = (window.URL || window.webkitURL).createObjectURL(blob);		// for Chrome
1278				aTag.click();
1279			  } else {
1280				alert("保存に失敗しました!");
1281			  }
1282		}
1283
1284		function CSV_Markers() {			// CSVデータのマーカー表示
1285		    CSV_Check();
1286		    for (i = 0; i <= (Data_CSV.length - 1); i++) {
1287			Marker_LAT[ Marker_count ] = Data_CSV[i][0];
1288			Marker_LON[ Marker_count ] = Data_CSV[i][1];
1289			Marker_NAM[ Marker_count ] = Data_CSV[i][2];
1290			Marker_LNK[ Marker_count ] = Data_CSV[i][3];
1291			Marker_ICN[ Marker_count ] = L.icon({
1292				iconUrl: Icon_Url,
1293				iconSize: [Icon_W, Icon_H],
1294				iconAnchor : [Icon_AW, Icon_AH],
1295				popupAnchor: [Icon_PW, Icon_PH]
1296			});
1297			Marker_ID[ Marker_count ] = "Marker" + Marker_ID_count;
1298			Marker_Drag_flag[ Marker_count ] = false;
1299			Marker_Drag_info[ Marker_count ] = "移動出来ません。";
1300			if( Data_CSV[i][0] != "" ) {
1301			    if( !isNaN( Data_CSV[i][0] ) ) {
1302				Temp = Marker_count;
1303				Marker_setting();
1304				Marker_set();
1305				Layer_404[ Temp ] = Temp_shape;
1306				Layer_404[ Temp ].addTo(map);
1307				Layer_404_clone[ Temp ] = Temp_shape_clone;
1308				Layer_404_clone[ Temp ].addTo(map);
1309			    }
1310			}
1311			Marker_count = Marker_count + 1;
1312			Marker_ID_count = Marker_ID_count + 1;
1313		    }
1314		    Marker_count = Marker_count - 1;
1315		}
1316
1317		function CSV_Lines() {				// CSVデータの直線表示
1318		    CSV_Check();
1319		    for (i = 0; i <= (Data_CSV.length - 1); i++) {
1320			Lines_LAT[ Lines_Marker_count ] = Data_CSV[i][0];
1321			Lines_LON[ Lines_Marker_count ] = Data_CSV[i][1];
1322			Lines_NAM[ Lines_Marker_count ] = Data_CSV[i][2];
1323			Lines_LNK[ Lines_Marker_count ] = Data_CSV[i][3];
1324			Lines_ICN[ Lines_Marker_count ] = L.icon({
1325				iconUrl: Icon_Url,
1326				iconSize: [Icon_W, Icon_H],
1327				iconAnchor : [Icon_AW, Icon_AH],
1328				popupAnchor: [Icon_PW, Icon_PH]
1329			});
1330			Lines_Marker_ID[ Lines_Marker_count ] = "Lines" + Lines_Marker_ID_count;
1331			Lines_Drag_flag[ Lines_Marker_count ] = false;
1332			Lines_Drag_info[ Lines_Marker_count ] = "移動出来ません。";
1333			if( !isNaN( Lines_LAT[ Lines_Marker_count ] ) ) {
1334				Temp = Lines_Marker_count;
1335				Lines_Marker_setting();
3316				Marker_set();
1337				Layer_505_LM[ Temp ] = Temp_shape;
1338				Layer_505_LM[ Temp ].addTo(map);
1339				Layer_505_LM_clone[ Temp ] = Temp_shape_clone;
1340				Layer_505_LM_clone[ Temp ].addTo(map);
1341				Lines_Marker_count = Lines_Marker_count + 1;
1342				Lines_Marker_ID_count = Lines_Marker_ID_count + 1;
1343			} else {
1344				Lines_Marker_count = Lines_Marker_count + 1;
1345				Lines_Marker_ID_count = Lines_Marker_ID_count + 1;
1346			}
1347		    }
1348		    Leaflet_Lines_Draw();
1349		}
1350
1351		function CSV_Polygons() {			// CSVデータの多角形表示
1352		    CSV_Check();
1353		    for (i = 0; i <= (Data_CSV.length - 1); i++) {
1354			Polygons_LAT[ Polygons_Marker_count ] = Data_CSV[i][0];
1355			Polygons_LON[ Polygons_Marker_count ] = Data_CSV[i][1];
1356			Polygons_NAM[ Polygons_Marker_count ] = Data_CSV[i][2];
1357			Polygons_LNK[ Polygons_Marker_count ] = Data_CSV[i][3];
1358			Polygons_ICN[ Polygons_Marker_count ] = L.icon({
1359				iconUrl: Icon_Url,
1360				iconSize: [Icon_W, Icon_H],
1361				iconAnchor : [Icon_AW, Icon_AH],
1362				popupAnchor: [Icon_PW, Icon_PH]
1363			});
1364			Polygons_Marker_ID[ Polygons_Marker_count ] = "Polygon" + Polygons_Marker_ID_count;
1365			Polygons_Drag_flag[ Polygons_Marker_count ] = false;
1366			Polygons_Drag_info[ Polygons_Marker_count ] = "移動出来ません。";
1367			if( !isNaN( Polygons_LAT[ Polygons_Marker_count ] ) ) {
1368				Temp = Polygons_Marker_count;
1369				Polygons_Marker_setting();
1370				Marker_set();
1371				Layer_505_PM[ Temp ] = Temp_shape;
1372				Layer_505_PM[ Temp ].addTo(map);
1373				Layer_505_PM_clone[ Temp ] = Temp_shape_clone;
1374				Layer_505_PM_clone[ Temp ].addTo(map);
1375				Polygons_Marker_count = Polygons_Marker_count + 1;
1376				Polygons_Marker_ID_count = Polygons_Marker_ID_count + 1;
1377			} else {
1378				Polygons_Marker_count = Polygons_Marker_count + 1;
1379				Polygons_Marker_ID_count = Polygons_Marker_ID_count + 1;
1380			}
1381		    }
1382		    Leaflet_Polygons_Draw();
1383		}
1384
1385		function CSV_Circles() {			// CSVデータの円表示
1386		    CSV_Check();
1387		    for (i = 0; i <= (Data_CSV.length - 1); i++) {
1388			Circles_LAT[ Circles_count ] = Data_CSV[i][0] * 1.0;
1389			Circles_LON[ Circles_count ] = Data_CSV[i][1] * 1.0;
1390			Circles_NAM[ Circles_count ] = Data_CSV[i][2];
1391			Circles_LNK[ Circles_count ] = Data_CSV[i][3];
1392			Circles_RAD[ Circles_count ] = Data_CSV[i][4] * 1.0;
1393			Circles_ID[ Circles_count ] = "Circle" + Circles_ID_count;
1394			Circles_Drag_flag[ Circles_count ] = false;
1395			Circles_Drag_info[ Circles_count ] = "移動出来ません。";
1396			if ( !isNaN( Circles_LAT[ Circles_count ] ) ) {
1397			    if ( (Circles_LAT[ Circles_count ] != 0) && (Circles_LON[ Circles_count ] != 0)) {
1398				Circles_Set( Circles_count );
1399				Circles_count = Circles_count + 1;
1400				Circles_ID_count = Circles_ID_count + 1;
1401			    }
1402			}
1403		    }
1404		}
1405
1406		function CSV_Check() {				// CSVデータの範囲制限
1407		    for (i = 0; i <= (Data_CSV.length - 1); i++) {
1408			if((Data_CSV[i][0] * 1.0) > 90) {
1409			    Data_CSV[i][0] = 90;
1410			}
1411			if((Data_CSV[i][0] * 1.0) < -90) {
1412			    Data_CSV[i][0] = -90;
1413			}
1414			while( (Data_CSV[i][1] * 1.0) < -180) {
1415			    Data_CSV[i][1] = Data_CSV[i][1] * 1.0 + 360;
1416			}
1417			while( (Data_CSV[i][1] * 1.0) > 180) {
1418			    Data_CSV[i][1] = Data_CSV[i][1] * 1.0 - 360;
1419			}
1420		    }
1421		}
1422
1423	function Leaflet_Mouse_ON() {			// マウス位置表示
1424	    Mouse_Position.addTo(map);
1425	}
1426	function Leaflet_Mouse_OFF() {			// マウス位置非表示
1427	    map.removeControl(Mouse_Position);
1428	}
1429
1430	function Leaflet_Search_ON() {			// 検索窓表示
1431		osmGeocoder = new L.Control.OSMGeocoder();
1432		map.addControl(osmGeocoder);
1433	}
1434	function Leaflet_Search_OFF() {			// 検索窓非表示
1435		map.removeControl(osmGeocoder);
1436	}
1437
1438      </script>
1439  </head>
1440  <body onload="init()">
1441  <nav id="menu-wrap" style=" z-index: 1000;">  
1442		<ul id="menu" style="width: 98%;">
1443			<li><a href="#">地図の選択</a>
1444			<ul id="scroll">
1445				<li><a><input type = "radio" name = "Basic_Layer" value = "0" checked onclick = "javascript: Sel_Basic_Layer();">Open Street Map</a></li>
1446				<li><a><input type = "radio" name = "Basic_Layer" value = "1" onclick = "javascript: Sel_Basic_Layer();">国土地理院 標準地図</a></li>
1447				<li><a><input type = "radio" name = "Basic_Layer" value = "2" onclick = "javascript: Sel_Basic_Layer();">国土地理院 淡色地図</a></li>
1448				<li><a><input type = "radio" name = "Basic_Layer" value = "3" onclick = "javascript: Sel_Basic_Layer();">国土地理院 写真</a></li>
1449				<li><a><input type = "radio" name = "Basic_Layer" value = "4" onclick = "javascript: Sel_Basic_Layer();">国土地理院 白地図</a></li>
1450				<li><a><input type = "radio" name = "Basic_Layer" value = "5" onclick = "javascript: Sel_Basic_Layer();">Stamen Toner-Background</a></li>
1451				<li><a><input type = "radio" name = "Basic_Layer" value = "6" onclick = "javascript: Sel_Basic_Layer();">Stamen Toner-Lite</a></li>
1452				<li><a><input type = "radio" name = "Basic_Layer" value = "7" onclick = "javascript: Sel_Basic_Layer();">Stamen Watercolor</a></li>
1453				<li><a><input type = "radio" name = "Basic_Layer" value = "8" onclick = "javascript: Sel_Basic_Layer();">Esri World Topo Map</a></li>
1454				<li><a><input type = "radio" name = "Basic_Layer" value = "9" onclick = "javascript: Sel_Basic_Layer();">Esri Ocean Base Map</a></li>
1455				<li><a><input type = "radio" name = "Basic_Layer" value = "10" onclick = "javascript: Sel_Basic_Layer();">NASA EOSDIS GIBS/Coast Lines</a></li>
1456			</ul>
1457			</li>
1458			<li><a href="#">オーバーレイ選択</a>
1459			<ul id="scroll">
1460				<div id="Over_Layer" >
1461				<li><a><input type = "checkbox" id="ckbox0" value = "0" >Stamen toner-hybrid</a></li>
1462				<li><a><input type = "checkbox" id="ckbox1" value = "1" >Stamen toner-lines</a></li>
1463				<li><a><input type = "checkbox" id="ckbox2" value = "2" >Stamen toner-labels</a></li>
1464				<li><a><input type = "checkbox" id="ckbox3" value = "3" >Open Sea Map SeaMark</a></li>
1465				<li><a><input type = "checkbox" id="ckbox4" value = "4" >Water Mask</a></li>
1466				<li><a><input type = "checkbox" id="ckbox5" value = "5" >1W Earthquake-Geojson</a></li>
1467				</div>
1468			</ul>
1469			</li>
1470			<li><a href="#">図形の設置</a>
1471			<ul>
1472				<li><a href="#" onclick = "Dialog_001()">マーカーのスタイル設定</a></li>
1473				<li><a href="#" onclick = "Dialog_003()">線のスタイル設定</a></li>
1474				<li><a href="#">---------------------------------------------</a></li>
1475				<li><a href="#">マーカー設置・消去 ≫</a>
1476				<ul>
1477					<li><a href="#" onclick = "Leaflet_Marker_400()">マーカー単独設置 </a></li>
1478					<li><a href="#" onclick = "Leaflet_Marker_402()">マーカー連続設置 </a></li>
1479					<li><a href="#" onclick = "Leaflet_Marker_404()">マーカー連続設置終了 </a></li>
1480					<li><a href="#" onclick = "Leaflet_Marker_405()">マーカー全消去 </a></li>
1481					<li><a href="#" onclick = "Leaflet_Marker_406()">マーカー保存(CSV形式) </a></li>
1482					<li><a href="#" onclick = "Leaflet_Marker_407()">データの読込(CSV形式) </a></li>
1483				</ul>
1484				</li>
1485				<li><a href="#">直線の設置・消去 ≫</a>
1486				<ul>
1487					<li><a href="#" onclick = "Leaflet_Lines_500()">直線の設置 </a></li>
1488					<li><a href="#" onclick = "Leaflet_Lines_502()">直線の設置終了 </a></li>
1489					<li><a href="#" onclick = "Leaflet_Lines_503()">直線の全消去 </a></li>
1490					<li><a href="#" onclick = "Leaflet_Lines_504()">直線用マーカー非表示 </a></li>
1491					<li><a href="#" onclick = "Leaflet_Lines_505()">直線用マーカー再表示 </a></li>
1492					<li><a href="#" onclick = "Leaflet_CSV_510()">直線データの保存(CSV形式) </a></li>
1493					<li><a href="#" onclick = "Leaflet_Marker_407()">データの読込(CSV形式) </a></li>
1494				</ul>
1495				</li>
1496				<li><a href="#">多角形の設置・消去 ≫</a>
1497				<ul>
1498					<li><a href="#" onclick = "Leaflet_Polygons_500()">多角形の設置 </a></li>
1499					<li><a href="#" onclick = "Leaflet_Polygons_502()">多角形の設置終了 </a></li>
1500					<li><a href="#" onclick = "Leaflet_Polygons_503()">多角形の全消去 </a></li>
1501					<li><a href="#" onclick = "Leaflet_Polygons_504()">多角形用マーカー非表示 </a></li>
1502					<li><a href="#" onclick = "Leaflet_Polygons_505()">多角形用マーカー再表示 </a></li>
1503					<li><a href="#" onclick = "Leaflet_CSV_511()">多角形データの保存(CSV形式) </a></li>
1504					<li><a href="#" onclick = "Leaflet_Marker_407()">データの読込(CSV形式) </a></li>
1505				</ul>
1506				</li>
1507				<li><a href="#">円の設置・消去 ≫</a>
1508				<ul>
1509					<li><a href="#" onclick = "Leaflet_Circles_500()">円の設置 </a></li>
1510					<li><a href="#" onclick = "Leaflet_Circles_501()">円の全消去 </a></li>
1511					<li><a href="#" onclick = "Leaflet_CSV_512()">円データの保存(CSV形式) </a></li>
1512					<li><a href="#" onclick = "Leaflet_Marker_407()">データの読込(CSV形式) </a></li>
1513				</ul>
1514				</li>
1515			</ul>
1516			</li>
1517			<li><a href="#">ユーティリティ</a>
1518			<ul>
1519				<li><a href="#" onclick = "Dialog_001()">マーカーのスタイル設定</a></li>
1520				<li><a href="#" onclick = "Dialog_003()">線のスタイル設定</a></li>
1521				<li><a href="#">グリッド線表示・非表示 ≫</a>
1522				<ul>
1523					<li><a href="#" onclick = "Grid_on_W();">白のグリッド線表示・更新 </a></li>
1524					<li><a href="#" onclick = "Grid_on_B();">黒のグリッド線表示・更新 </a></li>
1525					<li><a href="#" onclick = "Grid_off();">グリッド線非表示 </a></li>
1526				</ul>
1527				</li>
1528				<li><a href="#">マウス位置表示・非表示 ≫</a>
1529				<ul>
1530					<li><a href="#" onclick = "Leaflet_Mouse_ON();">マウス位置表示 </a></li>
1531					<li><a href="#" onclick = "Leaflet_Mouse_OFF();">マウス位置非表示 </a></li>
1532				</ul>
1533				</li>
1534				<li><a href="#">検索窓の表示・非表示 ≫</a>
1535				<ul>
1536					<li><a href="#" onclick = "Leaflet_Search_ON();">検索窓の表示 </a></li>
1537					<li><a href="#" onclick = "Leaflet_Search_OFF();">検索窓の非表示 </a></li>
1538					</ul>
1539				</li>
1540			</ul>
1541			</li>
1542		</ul>
1543  </nav>
1544
1545  <div id="map_Layer">
1546      <div id="map" style="width: 100%; height: 95%; border: solid 1px; top: 1px;"></div>
1547  ここで使用しているアイコン素材は、<A HREF = "http://flat-icon-design.com/" target="_blank"> FLAT ICON DESIGN </A>および
1548  <A HREF = "http://icooon-mono.com/" target="_blank"> ICOON MONO </A>から取得しており、これらアイコン素材データの著作権は TopeconHeroes が保持しています。
1549  </div>
1550  </body>
1551  </html>



 地図表示とオーバーレイ表示の選択については、『 Leaflet_Tutrial_301.html 』と異なり、上部メニューから選択するように変更しました。  次の『 Map_Data_601.js 』のソースファイル内容では、地図表示の選択箇所を赤字で、オーバーレイ表示の選択箇所をオレンジ色で表示しています。

       『 Map_Data_601.js 』のソースファイル内容
001  // Map_Data_601.js
002
003	var Basic_Map = new Array();
004		Basic_Map[ 0 ] = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
005			attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
006			continuousWorld: false
007		});
008		Basic_Map[ 1 ] = L.tileLayer('https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png', {
009			attribution: "<a href='https://maps.gsi.go.jp/development/ichiran.html' target='_blank'>地理院タイル</a>"
010		});
011		Basic_Map[ 2 ] = L.tileLayer('https://cyberjapandata.gsi.go.jp/xyz/pale/{z}/{x}/{y}.png', {
012			attribution: "<a href='https://maps.gsi.go.jp/development/ichiran.html' target='_blank'>地理院タイル</a>"
013		});
014		Basic_Map[ 3 ] = L.tileLayer('https://cyberjapandata.gsi.go.jp/xyz/seamlessphoto/{z}/{x}/{y}.jpg', {
015			attribution: "<a href='https://maps.gsi.go.jp/development/ichiran.html' target='_blank'>地理院タイル</a>"
016		});
017		Basic_Map[ 4 ] = L.tileLayer('https://cyberjapandata.gsi.go.jp/xyz/blank/{z}/{x}/{y}.png', {
018			attribution: "<a href='https://maps.gsi.go.jp/development/ichiran.html' target='_blank'>地理院タイル</a>"
019		});
020		Basic_Map[ 5 ] = L.tileLayer('http://{s}.tile.stamen.com/{variant}/{z}/{x}/{y}.png', {
021			attribution: 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, ',
022			variant: 'toner-background'
023		});
024		Basic_Map[ 6 ] = L.tileLayer('http://{s}.tile.stamen.com/{variant}/{z}/{x}/{y}.png', {
025			attribution: 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, ',
026			variant: 'toner-lite'
027		});
028		Basic_Map[ 7 ] = L.tileLayer('http://{s}.tile.stamen.com/{variant}/{z}/{x}/{y}.png', {
029			minZoom: 1,
030			maxZoom: 16,
031			attribution: 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, ',
032			variant: 'watercolor'
033		});
034		Basic_Map[ 8 ] = L.tileLayer('http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}', {
035			attribution: 'Tiles © <a href="http://www.esrij.com/"> Esri Japan </a>'
036		});
037		Basic_Map[ 9 ] = L.tileLayer('http://server.arcgisonline.com/ArcGIS/rest/services/Ocean_Basemap/MapServer/tile/{z}/{y}/{x}', {
038			maxZoom: 13,
039			attribution: 'Tiles by <a href="http://www.esrij.com/"> Esri Japan </a>'
040		});
041		Basic_Map[ 10 ] = new L.GIBSLayer('Coastlines', {
042			date: new Date('2015/04/01'),
043			transparent: true
044		});
045
046	var Over_Layer = new Array();
047		Over_Layer[ 0 ] = L.tileLayer('http://{s}.tile.stamen.com/{variant}/{z}/{x}/{y}.png', {
048		    attribution: 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, ' +
049			'<a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> — ' +
050			'Map data {attribution.OpenStreetMap}',
051		    variant: 'toner-hybrid'
052		});
053		Over_Layer[ 1 ] = L.tileLayer('http://{s}.tile.stamen.com/{variant}/{z}/{x}/{y}.png', {
054		    attribution: 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, ' +
055			'<a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> — ' +
056			'Map data {attribution.OpenStreetMap}',
057		    variant: 'toner-lines'
058		});
059		Over_Layer[ 2 ] = L.tileLayer('http://{s}.tile.stamen.com/{variant}/{z}/{x}/{y}.png', {
060		    attribution: 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, ' +
061			'<a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> — ' +
062			'Map data {attribution.OpenStreetMap}',
063		    variant: 'toner-labels'
064		});
065		Over_Layer[ 3 ] = L.tileLayer('http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png', {
066		    attribution: "<a href='http://www.openseamap.org' target='_blank'>OpenSeaMap</a> contributors"
067		});
068		Over_Layer[ 4 ] = new L.GIBSLayer('MODIS_Water_Mask', {
069		    date: new Date('2018/11/15'),
070		    transparent: true
071		});
072		Over_Layer[ 5 ] = new L.GeoJSON.AJAX(
073  //			"https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojson",
074  //			"https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/4.5_week.geojson",
075  //			"https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.geojson",
076  //			"https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/1.0_week.geojson",
077			"https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_week.geojson",
078  //			"https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/4.5_month.geojson",
079  //			"https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_month.geojson",
080  //			"https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/1.0_month.geojson",
081  //			"https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
082		   {pointToLayer: function (feature, latlng) {
083			return L.circleMarker(latlng, {
084			    radius: feature.properties.mag * feature.properties.mag / 3,
085			    fillcolor: "#FF7800",
086			    color: "#FF7800",
087			    weight: 1,
088			    opacity: 0.5,
089			    fillOpacity: 0.5
090			}); },
091		    onEachFeature: function (feature, layer) {
092		    layer.bindPopup(new Date(feature.properties.time).toUTCString() + " / " + feature.properties.title);
093		    } 
094		});
095
096	var OverLayerFlag = new Array();
097
098	function Sel_Basic_Layer() { 
099		Temp = null; 
100		Temp = document.getElementsByName("Basic_Layer"); 
101		for (i=0; i<Temp.length; i++) { 
102			if(Temp[i].checked) { 
103				map.removeLayer(Layer_00); 
104				Layer_00 = Basic_Map[ i ]; 
105				map.addLayer(Layer_00); 
106			} 
107		} 
108	} 
109
110	$(function() { 
111	    $("#Over_Layer :checkbox").change(function() { 
112		var cb_count = Over_Layer.length; 
113		for (i = 0; i < cb_count; i++) { 
114		    Temp = $("#ckbox" + String(i) + ":checked").val(); 
115		    if( Temp == i ) { 
116			map.addLayer(Over_Layer[ i ]); 
117			OverLayerFlag[ i ] = 1; 
118		    } else { 
119			if (OverLayerFlag[ i ] == 1) { 
120			    map.removeLayer(Over_Layer[ i ]); 
121			    OverLayerFlag[ i ] = 0; 
122			} 
123		    } 
124		} 
125	    }); 
126	}); 
127
128	function dummy() {
129		alert("Under Construction!");
130	}




Previous Page Next Page

- 9 -