From f2f32347f15c863056776101cafc9dc19b87d421 Mon Sep 17 00:00:00 2001 From: hide_d Date: Tue, 30 Jan 2018 15:28:43 +0900 Subject: [PATCH] =?UTF-8?q?=EC=83=88=20=EC=A7=80=EB=8F=84=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=EC=97=90=EC=84=9C=20=EC=98=88=EC=A0=9C=EB=A1=9C=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=ED=95=A0=20result.json=20=EC=86=90=EB=B4=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 새 지도 코드에서 (detail, basic), (click, select)를 같이 사용할 수 있도록 정비 --- tmp_map/map.css | 13 +++-- tmp_map/map.html | 4 +- tmp_map/map.js | 114 ++++++++++++++++++++++++++++++-------------- tmp_map/result.json | 109 +++++++++++++++++++++++++++++++++++++++--- 4 files changed, 189 insertions(+), 51 deletions(-) diff --git a/tmp_map/map.css b/tmp_map/map.css index b57af0dd..8f4963f4 100644 --- a/tmp_map/map.css +++ b/tmp_map/map.css @@ -7,10 +7,13 @@ .map_title{ width:700px; height:20px; + text-align:center; +} + +.map_detail .map_title{ background: url('/images/ltitle.jpg') no-repeat left, url('/images/rtitle.jpg') no-repeat right; - text-align:center; } .map_title_text{ @@ -23,25 +26,25 @@ font-weight:bold; } -.map_spring .map_title_text{ +.map_detail.map_spring .map_title_text{ background: url('/images/ad.gif') no-repeat left, url('/images/spring.gif') no-repeat right; } -.map_summer .map_title_text{ +.map_detail.map_summer .map_title_text{ background: url('/images/ad.gif') no-repeat left, url('/images/summer.gif') no-repeat right; } -.map_fall .map_title_text{ +.map_detail.map_fall .map_title_text{ background: url('/images/ad.gif') no-repeat left, url('/images/fall.gif') no-repeat right; } -.map_winter .map_title_text{ +.map_detail.map_winter .map_title_text{ background: url('/images/ad.gif') no-repeat left, url('/images/winter.gif') no-repeat right; diff --git a/tmp_map/map.html b/tmp_map/map.html index 81ba8bfa..9ffcd0d5 100644 --- a/tmp_map/map.html +++ b/tmp_map/map.html @@ -11,14 +11,14 @@ -
+
217年 2月
-
+
diff --git a/tmp_map/map.js b/tmp_map/map.js index 888bdc73..a907e9de 100644 --- a/tmp_map/map.js +++ b/tmp_map/map.js @@ -2,29 +2,20 @@ String.prototype.format = function() { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { - return typeof args[number] != 'undefined' - ? args[number] - : match - ; + return (typeof args[number] != 'undefined') ? args[number] : match; }); }; -jQuery(function($){ + + + +function reloadWorldMap(isDetailMap, clickableAll, selectCallback){ + var cityPosition = getCityPosition(); //OBJ : startYear, year, month, cityList, nationList, spyList, ourCityList, shownByGeneralList, myCity var $world_map = $('.world_map'); - function clearWorldMap(obj){ - $world_map.find('.city_obj').detach(); - $world_map - .removeClass('map_spring') - .removeClass('map_summer') - .removeClass('map_fall') - .removeClass('map_winter'); - return obj; - } - function setMapBackground(obj){ var startYear = obj.startYear; var year = obj.year; @@ -43,6 +34,7 @@ jQuery(function($){ } + $world_map.removeClass('map_string map_summer map_fall map_winter'); if(month <= 3){ $world_map.addClass('map_spring'); } @@ -67,12 +59,11 @@ jQuery(function($){ function toCityObj(arr){ return { "id":arr[0], - "name":arr[1], - "level":arr[2], - "state":arr[3], - "nationId":arr[4], - "region":arr[5], - "supply":arr[6] + "level":arr[1], + "state":arr[2], + "nationId":(arr[3]>0)?arr[3]:null, + "region":arr[4], + "supply":arr[5] }; } @@ -81,7 +72,7 @@ jQuery(function($){ "id":arr[0], "name":arr[1], "color":arr[2], - "capital":(arr[3]!=0) + "capital":(arr[3]!==0) }; } @@ -137,20 +128,21 @@ jQuery(function($){ case 7: level_str = "대】"; break; case 8: level_str = "특】"; break; } - + city.text = region_str + city.name + level_str; city.region_str = region_str; city.level_str = level_str; - + return city; } - + function mergePositionInfo(city){ var id = city.id; if(!(id in cityPosition)){ return city; } var xy_val = cityPosition[id]; + city.name = xy_val[0]; city.x = xy_val[1]; city.y = xy_val[2]; return city; @@ -160,7 +152,7 @@ jQuery(function($){ //nationId 값으로 isCapital, color, nation을 통합 var nationId = city.nationId; - if(nationId == null || !(nationId in nationList)){ + if(nationId === null || !(nationId in nationList)){ city.nationId = null; city.nation = null; city.color = null; @@ -177,20 +169,24 @@ jQuery(function($){ } function mergeClickable(city){ - //clickable = (remainSpy << 2) | (ourCity << 1) | shownByGeneral + //clickable = (remainSpy << 3) | (ourCity << 2) | (shownByGeneral << 1) | clickableAll var id = city.id; var nationId = city.nationId; var clickable = 0; if(id in spyList){ - clickable |= spyList[id] << 2; + clickable |= spyList[id] << 3; } if(nationId == myNation){ - clickable |= 2; + clickable |= 4; } if(id in shownByGeneralList){ + clickable |= 2; + } + if(clickableAll){ clickable |= 1; } + city.clickable = clickable; return city; } @@ -204,10 +200,10 @@ jQuery(function($){ return { 'cityList' : cityList, 'myCity' : myCity - } + }; } - function drawWorldMap(obj){ + function drawDetailWorldMap(obj){ var flagTemplate = '
'; var backgroundTemplate = '
'; @@ -220,10 +216,26 @@ jQuery(function($){ //도시 선택 크기는 동일하게 가고 도시 이미지는 div로 설정. - + return obj; } - var setMouseWork = function(){ + function drawBasicWorldMap(obj){ + + var flagTemplate = '
'; + var backgroundTemplate = '
'; + + var cityList = obj.cityList; + var myCity = obj.myCity; + + //TODO: 도시를 그린다......... + // + //도시 선택 크기는 동일하게 가고 도시 이미지는 div로 설정. + + + return obj; + } + + function setMouseWork(obj){ var $tooltip = $('.world_map .city_tooltip'); var $tooltip_city = $tooltip.find('.city_name'); var $tooltip_nation = $tooltip.find('.nation_name'); @@ -231,7 +243,7 @@ jQuery(function($){ var $objs = $('.world_map .city_obj'); var $map_body = $('.world_map .map_body'); - + $map_body.mousemove(function(e){ var parentOffset = $map_body.offset(); @@ -249,13 +261,41 @@ jQuery(function($){ },function(event){ $tooltip.hide(); }); + + return obj; } + function setCityClickable(obj){ + return obj; + } + function saveCityInfo(obj){ + $world_map.data('cityInfo', obj); + return obj; + } + + if(isDetailMap){ + $world_map.addClass('map_detail'); + } + else{ + $world_map.removeClass('map_datail'); + } + + //deferred mode of jQuery. != promise-then. $.getJSON( 'result.json', {}) - .then(clearWorldMap) .then(setMapBackground) .then(convertCityObjs) - .then(drawWorldMap) - .then(setMouseWork); + .then(isDetailMap?drawDetailWorldMap:drawBasicWorldMap) + .then(setMouseWork) + .then(setCityClickable) + .then(saveCityInfo); +} + +$(function(){ + + var isDetailMap = true; + var clickableAll = false; + + reloadWorldMap(isDetailMap, clickableAll, console.log); + }); \ No newline at end of file diff --git a/tmp_map/result.json b/tmp_map/result.json index cadedfa1..f305e298 100644 --- a/tmp_map/result.json +++ b/tmp_map/result.json @@ -1,16 +1,111 @@ { - "staryYear":215, + "startYear":215, "year":217, - "month":5, + "month":10, "cityList":[ - [1,"name","level","state","nationId","region","supply"] + [1, 8, 0, 0, 1, 1], + [2, 8, 0, 0, 2, 1], + [3, 8, 0, 0, 2, 1], + [4, 8, 0, 0, 3, 1], + [5, 8, 0, 0, 4, 1], + [6, 8, 0, 0, 6, 1], + [7, 8, 0, 0, 7, 1], + [8, 7, 0, 0, 1, 1], + [9, 7, 0, 0, 1, 1], + [10, 7, 0, 0, 2, 1], + [11, 7, 0, 0, 2, 1], + [12, 7, 0, 0, 2, 1], + [13, 7, 0, 1, 6, 1], + [14, 7, 0, 1, 6, 1], + [15, 7, 0, 1, 7, 1], + [16, 7, 0, 1, 8, 1], + [17, 6, 0, 0, 1, 1], + [18, 6, 0, 0, 2, 1], + [19, 6, 0, 0, 2, 1], + [20, 6, 0, 0, 2, 1], + [21, 6, 0, 0, 2, 1], + [22, 6, 0, 0, 3, 1], + [23, 6, 0, 0, 3, 1], + [24, 6, 0, 0, 4, 1], + [25, 6, 0, 0, 4, 1], + [26, 6, 0, 0, 4, 1], + [27, 6, 0, 0, 4, 1], + [28, 6, 0, 0, 5, 1], + [29, 6, 0, 0, 5, 1], + [30, 6, 0, 0, 6, 1], + [31, 6, 0, 0, 7, 1], + [32, 6, 0, 0, 8, 1], + [33, 6, 0, 0, 8, 1], + [34, 6, 0, 0, 8, 1], + [35, 5, 0, 0, 1, 1], + [36, 5, 0, 0, 1, 1], + [37, 5, 0, 0, 1, 1], + [38, 5, 0, 0, 2, 1], + [39, 5, 0, 0, 2, 1], + [40, 5, 0, 0, 3, 1], + [41, 5, 0, 0, 3, 1], + [42, 5, 0, 0, 3, 1], + [43, 5, 0, 0, 4, 1], + [44, 5, 0, 0, 4, 1], + [45, 5, 0, 0, 4, 1], + [46, 5, 0, 0, 5, 1], + [47, 5, 0, 0, 5, 1], + [48, 5, 0, 0, 5, 1], + [49, 5, 0, 0, 5, 1], + [50, 5, 0, 0, 5, 1], + [51, 5, 0, 0, 6, 1], + [52, 5, 0, 0, 6, 1], + [53, 5, 0, 0, 6, 1], + [54, 5, 0, 0, 6, 1], + [55, 5, 0, 0, 6, 1], + [56, 5, 0, 0, 7, 1], + [57, 5, 0, 0, 7, 1], + [58, 5, 0, 0, 7, 1], + [59, 5, 0, 0, 7, 1], + [60, 5, 0, 0, 8, 1], + [61, 5, 0, 0, 8, 1], + [62, 5, 0, 0, 8, 1], + [63, 4, 0, 0, 3, 1], + [64, 4, 0, 0, 3, 1], + [65, 4, 0, 0, 3, 1], + [66, 4, 0, 0, 5, 1], + [67, 4, 0, 0, 7, 1], + [68, 4, 0, 0, 8, 1], + [69, 4, 0, 0, 8, 1], + [70, 3, 0, 0, 1, 1], + [71, 3, 0, 0, 2, 1], + [72, 3, 0, 0, 3, 1], + [73, 3, 0, 0, 3, 1], + [74, 3, 0, 0, 2, 1], + [75, 3, 0, 0, 4, 1], + [76, 3, 0, 0, 4, 1], + [77, 2, 0, 0, 1, 1], + [78, 2, 0, 0, 1, 1], + [79, 2, 0, 0, 1, 1], + [80, 2, 0, 2, 2, 1], + [81, 2, 0, 2, 2, 1], + [82, 2, 0, 2, 2, 1], + [83, 2, 0, 2, 2, 1], + [84, 2, 0, 0, 3, 1], + [85, 2, 0, 0, 3, 1], + [86, 2, 0, 3, 4, 1], + [87, 3, 0, 3, 4, 1], + [88, 2, 0, 3, 6, 1], + [89, 2, 0, 3, 6, 1], + [90, 2, 0, 0, 8, 1], + [91, 1, 0, 0, 7, 1], + [92, 1, 0, 0, 7, 1], + [93, 1, 0, 0, 8, 1], + [94, 1, 0, 0, 8, 1] ], "nationList":[ - ["id","name","color","capital"] + [1,"위","#0000ff",13], + [2,"촉","#00ff00",83], + [3,"오","#ff0000",89] ], - "spyList":[13, 22], + "spyList":[133, 892], "shownByGeneralList":[65,33,73], - "myCity":33, - "myNation":1 + "myCity":83, + "myNation":2 } \ No newline at end of file