Skip to content

Instantly share code, notes, and snippets.

@vuski
Last active Oct 21, 2016
Embed
What would you like to do?
Increase and Decrease of Retailers in Seoul from 2006 to 2014

2006~2014년 사이의 소매업종 증감지도 (200m x 200m 격자)

E/e key : 투명도 조절

spacebar : 초기화

상단 중앙 버튼 : 누를 때 마다 교체 (선택된 업종의 교집합 / 선택된 업종의 합집합 / 선택된 것들 중 제일 상단의 업종의 증감을 한번에)

display 밑의 open 버튼을 눌러 전체화면으로 전환해야 모든 버튼이 보임

<!DOCTYPE html>
<html>
<head>
<title>Increase and Decrease of Retailers in Seoul from 2006 to 2014</title>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script type="text/javascript" src="http://d3js.org/d3.v4.min.js"></script>
<script type="text/javascript" src="valueDifference_matrix.js"></script>
<script type="text/javascript">
var sites = readTotalSites();
var values = readValueDifference();
var transparent = false;
var recs = new Array();
var toggle = 1;
var toggleText = ["선택된 업종의 합집합", "증감을 한번에", "선택된 업종의 교집합"];
var year = 0;
var beginYear = 2006;
var endYear = 2014;
var dataTxt = ["한식", "중식", "기타 외국식", "서양식", "카페", "호프 및 간이주점", "치킨", "패스트푸드", "분식", //9
"일식", "제과점", "문구점", "서점", "편의점", "식료품점", "휴대폰점", "의류", "화장품방향제", //9
"철물점", "주유소", "꽃집", "슈퍼마켓", "인테리어", "목욕탕", "교습학원", "어학원", "예체능학원", //9
"부동산중개업", "이발소", "미용실", "세탁소", "PC방", "노래방", "호텔", "여관모텔여인숙", "펜션"]; //9
function Data(lat, lng) {
this.lat = lat;
this.lng = lng;
}
function Rec(coordi, value) {
this.coordi = coordi;
this.value = value;
this.on = false;
this.polygon;
this.temp;
this.tempValue;
}
PutData();
var groupSelect = new Array();
for (var i = 0 ; i < 36 ; i++) groupSelect[i] = 0;
function onSelect(group) {
var groupJudge, plusMinus;
if (group < 36) {
groupJudge = 0;
plusMinus = 1;
} else {
groupJudge = -36;
plusMinus = -1;
}
if (groupSelect[group+groupJudge] == 0) {
document.getElementsByClassName("group" + group)[0].id = "selected";
groupSelect[group + groupJudge] = plusMinus;
} else if (groupSelect[group + groupJudge] == (plusMinus * -1)) {
document.getElementsByClassName("group" + (group + (36*plusMinus)))[0].id = "unselected";
document.getElementsByClassName("group" + group)[0].id = "selected";
groupSelect[group + groupJudge] = plusMinus;
} else {
document.getElementsByClassName("group" + group)[0].id = "unselected";
groupSelect[group + groupJudge] = 0;
}
reInit();
}
function reInit() {
var selectColor;
if (toggle == 1) {
for (var i = 0 ; i < recs.length ; i++) recs[i].tempValue = 99999;
for (var i = 0 ; i < recs.length ; i++) {
for (var j = 0; j < groupSelect.length ; j++) {
if (groupSelect[j] != 0) {
if (recs[i].tempValue != -99999) {
if (recs[i].value[j] * groupSelect[j] > 0) {
if (recs[i].value[j] * groupSelect[j] < recs[i].tempValue) {
recs[i].tempValue = recs[i].value[j] * groupSelect[j];
}
} else {
recs[i].tempValue = -99999;
}
}
}
}
if (recs[i].tempValue == 99999) recs[i].tempValue = -99999;
}
selectColor = selectColorForMulti();
} else if (toggle == -1) {
for (var i = 0 ; i < recs.length ; i++) recs[i].tempValue = 0
for (var i = 0 ; i < recs.length ; i++) {
for (var j = 0; j < groupSelect.length ; j++) {
if (groupSelect[j] != 0) {
if (recs[i].value[j] * groupSelect[j] > 0) {
recs[i].tempValue += recs[i].value[j] * groupSelect[j];
}
}
}
if (recs[i].tempValue == 0) recs[i].tempValue = -99999;
}
selectColor = selectColorForMulti();
} else {
for (var i = 0 ; i < recs.length ; i++) recs[i].tempValue = -99999;
for (var j = 0; j < groupSelect.length ; j++) {
if (groupSelect[j] != 0) {
document.getElementById("toggle").innerText = dataTxt[j] +" 증감을 한번에";
for (var i = 0 ; i < recs.length ; i++) {
recs[i].tempValue = recs[i].value[j];
}
break;
}
}
selectColor = selectColorForOne();
}
for (var i = 0 ; i < recs.length ; i++) {
var flColor = (recs[i].tempValue == -99999||isNaN(recs[i].tempValue)) ? "white" : selectColor(recs[i].tempValue);
var fillOpa = (recs[i].tempValue == -99999 || isNaN(recs[i].tempValue)) ? 0 : 1;
recs[i].polygon.setOptions({
fillColor: flColor,
fillOpacity: fillOpa
});
};
}
function selectColorForMulti() {
var valueArray = putValueToArray();
valueArray[2].sort(function (a, b) {
return a - b;
});
var maxAbs = Math.abs(d3.max(valueArray[2]));
var biggerQuantile = Math.abs(d3.quantile(valueArray[2], 0.98));
var colorCode;
var count = 0, sum = 0;
for (var j = 0; j < groupSelect.length ; j++) {
sum += groupSelect[j];
if (groupSelect[j] != 0) count++;
}
if (sum == count) {
colorCode = ["white", "#d80074", "#5c0031"];
} else if (sum == (-1) * count) {
colorCode = ["white", "#0086cf", "#00334f"];
} else {
colorCode = ["white", "#8a35a7", "#3f0c51"];
}
var selectColor = d3.scaleLinear()
.domain([0, biggerQuantile, maxAbs])
.range(colorCode);
return selectColor;
}
function selectColorForOne() {
var valueArray = putValueToArray();
valueArray[0].sort(function (a, b) {
return a - b;
});
valueArray[2].sort(function (a, b) {
return a - b;
});
var maxAbs;
var biggerQuantile;
if (Math.abs(d3.min(valueArray[0])) > Math.abs(d3.max(valueArray[2]))) {
maxAbs = Math.abs(d3.min(valueArray[0]));
biggerQuantile = Math.abs(d3.quantile(valueArray[0], 0.02));
} else {
maxAbs = Math.abs(d3.max(valueArray[2]));
biggerQuantile = Math.abs(d3.quantile(valueArray[2], 0.98));
}
var selectColor = d3.scaleLinear()
.domain([(maxAbs * -1), (biggerQuantile * -1), 0, biggerQuantile, maxAbs])
.range(["#00334f", "#0086cf", "white", "#d80074", "#5c0031"]);
return selectColor;
}
function putValueToArray() {
var tempArray = new Array();
tempArray[0] = new Array();
tempArray[1] = new Array();
tempArray[2] = new Array();
for (var i = 0 ; i < recs.length ; i++) {
if (recs[i].tempValue < 0) {
tempArray[0].push(recs[i].tempValue);
} else if (recs[i].tempValue == 0) {
tempArray[1].push(recs[i].tempValue);
} else if (recs[i].tempValue > 0) {
tempArray[2].push(recs[i].tempValue);
}
}
console.log(tempArray[0].length, tempArray[1].length, tempArray[2].length);
return tempArray;
}
function initialize() {
var styles = [
{
featureType: 'all',
stylers: [
{ saturation: -100 }
]
}
];
var styledMap = new google.maps.StyledMapType(styles, { name: "Styled Map" });
// Google Map
var mapOptions = {
center: new google.maps.LatLng(37.568527, 126.981805),
zoom: 13,
mapTypeControlOptions: {
mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'map_style'] //ROADMAP ,SATELLITE ,HYBRID ,TERRAIN
}
};
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
map.mapTypes.set('map_style', styledMap);
map.setMapTypeId('map_style');
DrawBackground();
for (var i = 0 ; i < recs.length ; i++) drawPolygon(recs[i]);
document.body.onkeyup = function (e) {
if (e.keyCode == 32) {
for (var i = 0 ; i < 72 ; i++) {
document.getElementsByClassName("group" + i)[0].id = "unselected";
groupSelect[i] = 0;
};
reInit();
} else if (e.keyCode == 101 || e.keyCode == 69) {
if (transparent) {
for (var i = 0 ; i < recs.length ; i++) {
var fillOpa = (recs[i].tempValue == -99999 || isNaN(recs[i].tempValue)) ? 0 : 1;
recs[i].polygon.setOptions({ fillOpacity: fillOpa });
};
transparent = false;
} else {
for (var i = 0 ; i < recs.length ; i++) {
recs[i].polygon.setOptions({ fillOpacity: 0 });
};
transparent = true;
}
}
}
} //initialize()
function PutData() {
var cnt = 0;
for (var i = 0; i < sites.length; i++) {
if (sites[i].length != 0) {
var coordiTemp = new Array();
for (var j = 0 ; j < sites[i].length ; j++) {
coordiTemp.push(new Data(sites[i][j][1], sites[i][j][0]));
}
var valueTemp = new Array();
for (var j = 0 ; j < values[i].length ; j++) {
valueTemp.push(values[i][j]);
}
recs.push(new Rec(coordiTemp, valueTemp));
cnt++;
}
}
}
function DrawBackground() {
var backRect = new Array();
var backCoord = [[37.4249, 126.76], [37.4249, 127.1855], [37.704, 127.1855], [37.704, 126.76], [37.4249, 126.76]];
for (var i = 0 ; i < backCoord.length ; i++) {
backRect.push(new google.maps.LatLng(backCoord[i][0],backCoord[i][1]));
}
var polygons = {
path: backRect,
strokeColor: "#ffffff",
strokeOpacity: 1,
strokeWeight: 0,
fillColor: "#ffffff",
fillOpacity: 0.8,
zIndex: 100
};
var background = new google.maps.Polygon(polygons);
background.setMap(map);
}
function drawPolygon(datum) {
var drawOrder;
var polygonCoords = new Array();
for (var i = 0 ; i < datum.coordi.length ; i++) {
polygonCoords.push(new google.maps.LatLng(datum.coordi[i].lat, datum.coordi[i].lng));
}
var stColor = "#909090";
var flColor = "white";
var fillOpa = 0;
var polygons = {
path: polygonCoords,
strokeColor: stColor,
strokeOpacity: 0.5,
strokeWeight: 0.3,
fillColor: flColor,
fillOpacity: fillOpa,
zIndex : 200,
map :map
};
datum.polygon = new google.maps.Polygon(polygons);
//tooltips
var contentText = "<table border=\"0\"><tr>200m x 200m 격자에서 2006-2014년 사이의 업종 증감 (x 는 아예 없음을 나타냄)</tr><tr>";
for (var i = 0 ; i < dataTxt.length ; i++) contentText += "<td>"+ dataTxt[i] + "</td>"
contentText += "</tr><tr>";
for (var i = 0 ; i < datum.value.length ; i++) contentText += "<td>"+datum.value[i] + "</td>";
contentText += "</tr></table>";
var infoWindow = new google.maps.InfoWindow({ content: contentText, manWidth: 500 });
google.maps.event.addListener(datum.polygon, 'mouseover', function () {
infoWindow.setPosition(new google.maps.LatLng((datum.coordi[0].lat + datum.coordi[2].lat) / 2, (datum.coordi[0].lng + datum.coordi[2].lng) / 2));
infoWindow.open(map);
});
google.maps.event.addListener(datum.polygon, 'mouseout', function () {
infoWindow.open(null);
});
}
function toggleData() {
if (toggle == 1) {
toggle = -1
} else {
toggle += 1;
}
document.getElementById("toggle").innerText = toggleText[toggle + 1];
reInit();
}
</script>
<style>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
svg {
position: absolute;
top: 60px;
left: 100px;
z-index: 5;
}
#main_area {
height: 100%;
width: 100%;
}
#main_area > #map_canvas {
position : absolute;
right : 240px;
left : 0;
display : inline-block;
height: 100%;
}
#main_area > #control_panel_plus {
display : inline-block;
width: 120px;
height: 100%;
float : right;
background-color: white;
}
#main_area > #control_panel_minus {
display : inline-block;
width: 120px;
height: 100%;
float : right;
background-color: white;
}
@media print {
html, body {
height: auto;
}
#map-canvas, #map_canvas {
height: 650px;
}
}
#panel {
position: absolute;
top: 5px;
left: 50%;
margin-left: -180px;
z-index: 5;
background-color: #fff;
padding: 5px;
border: 1px solid #999;
}
svg text {
font-family: Arial;
fill : #ffffff;
font-weight : bold;
}
svg path {
stroke: #fff;
}
ul.group {
padding : 0px 1px 0px 1px;
margin : 0 0 0 0;
}
ul.group >li {
font-family: '맑은 고딕', Arial;
font-weight : bold;
font-size : 10px;
text-align :center;
line-height : 13px;
display :block;
height : 13px;
width : 109px;
padding : 5px 5px 5px 5px;
margin : 2px 0px 2px 0px;
}
#control_panel_plus> ul.group > #unselected:hover {
background-color: #c993b0;
}
#control_panel_plus> ul.group > #selected:hover {
background-color: #860048;
}
#control_panel_plus> ul.group > #selected {
background-color: #d80074;
color : white;
}
#control_panel_minus> ul.group > #unselected:hover {
background-color: #92bbd1;
}
#control_panel_minus> ul.group > #selected:hover {
background-color: #004e79;
}
#control_panel_minus> ul.group > #selected {
background-color: #0086cf;
color : white;
}
ul.group > #unselected {
background-color: #f2f2f2;
color : black;
}
</style>
</head>
<body onload="initialize()">
<div id="panel">
<button id="toggle" onclick="toggleData()">선택된 업종의 교집합</button>
</div>
<div id="main_area" >
<section id="map_canvas" ></section>
<aside id="control_panel_minus">
<ul class="group">
<li class="group36" id="unselected" onclick="onSelect(36)">한식-</li>
<li class="group37" id="unselected" onclick="onSelect(37)">중식-</li>
<li class="group38" id="unselected" onclick="onSelect(38)">기타 외국식-</li>
<li class="group39" id="unselected" onclick="onSelect(39)">서양식-</li>
<li class="group40" id="unselected" onclick="onSelect(40)">카페-</li>
<li class="group41" id="unselected" onclick="onSelect(41)">호프 및 간이주점-</li>
<li class="group42" id="unselected" onclick="onSelect(42)">치킨-</li>
<li class="group43" id="unselected" onclick="onSelect(43)">패스트푸드-</li>
<li class="group44" id="unselected" onclick="onSelect(44)">분식-</li>
<li class="group45" id="unselected" onclick="onSelect(45)">일식-</li>
<li class="group46" id="unselected" onclick="onSelect(46)">제과점-</li>
<li class="group47" id="unselected" onclick="onSelect(47)">문구점-</li>
<li class="group48" id="unselected" onclick="onSelect(48)">서점-</li>
<li class="group49" id="unselected" onclick="onSelect(49)">편의점-</li>
<li class="group50" id="unselected" onclick="onSelect(50)">식료품점-</li>
<li class="group51" id="unselected" onclick="onSelect(51)">휴대폰점-</li>
<li class="group52" id="unselected" onclick="onSelect(52)">의류-</li>
<li class="group53" id="unselected" onclick="onSelect(53)">화장품방향제-</li>
<li class="group54" id="unselected" onclick="onSelect(54)">철물점-</li>
<li class="group55" id="unselected" onclick="onSelect(55)">주유소-</li>
<li class="group56" id="unselected" onclick="onSelect(56)">꽃집-</li>
<li class="group57" id="unselected" onclick="onSelect(57)">슈퍼마켓-</li>
<li class="group58" id="unselected" onclick="onSelect(58)">인테리어-</li>
<li class="group59" id="unselected" onclick="onSelect(59)">목욕탕-</li>
<li class="group60" id="unselected" onclick="onSelect(60)">교습학원-</li>
<li class="group61" id="unselected" onclick="onSelect(61)">어학원-</li>
<li class="group62" id="unselected" onclick="onSelect(62)">예체능학원-</li>
<li class="group63" id="unselected" onclick="onSelect(63)">부동산중개업-</li>
<li class="group64" id="unselected" onclick="onSelect(64)">이발소-</li>
<li class="group65" id="unselected" onclick="onSelect(65)">미용실-</li>
<li class="group66" id="unselected" onclick="onSelect(66)">세탁소-</li>
<li class="group67" id="unselected" onclick="onSelect(67)">PC방-</li>
<li class="group68" id="unselected" onclick="onSelect(68)">노래방-</li>
<li class="group69" id="unselected" onclick="onSelect(69)">호텔-</li>
<li class="group70" id="unselected" onclick="onSelect(70)">여관모텔여인숙-</li>
<li class="group71" id="unselected" onclick="onSelect(71)">펜션-</li>
</ul>
</aside>
<aside id="control_panel_plus">
<ul class="group">
<li class="group0" id="unselected" onclick="onSelect(0)">한식+</li>
<li class="group1" id="unselected" onclick="onSelect(1)">중식+</li>
<li class="group2" id="unselected" onclick="onSelect(2)">기타 외국식+</li>
<li class="group3" id="unselected" onclick="onSelect(3)">서양식+</li>
<li class="group4" id="unselected" onclick="onSelect(4)">카페+</li>
<li class="group5" id="unselected" onclick="onSelect(5)">호프 및 간이주점+</li>
<li class="group6" id="unselected" onclick="onSelect(6)">치킨+</li>
<li class="group7" id="unselected" onclick="onSelect(7)">패스트푸드+</li>
<li class="group8" id="unselected" onclick="onSelect(8)">분식+</li>
<li class="group9" id="unselected" onclick="onSelect(9)">일식+</li>
<li class="group10" id="unselected" onclick="onSelect(10)">제과점+</li>
<li class="group11" id="unselected" onclick="onSelect(11)">문구점+</li>
<li class="group12" id="unselected" onclick="onSelect(12)">서점+</li>
<li class="group13" id="unselected" onclick="onSelect(13)">편의점+</li>
<li class="group14" id="unselected" onclick="onSelect(14)">식료품점+</li>
<li class="group15" id="unselected" onclick="onSelect(15)">휴대폰점+</li>
<li class="group16" id="unselected" onclick="onSelect(16)">의류+</li>
<li class="group17" id="unselected" onclick="onSelect(17)">화장품방향제+</li>
<li class="group18" id="unselected" onclick="onSelect(18)">철물점+</li>
<li class="group19" id="unselected" onclick="onSelect(19)">주유소+</li>
<li class="group20" id="unselected" onclick="onSelect(20)">꽃집+</li>
<li class="group21" id="unselected" onclick="onSelect(21)">슈퍼마켓+</li>
<li class="group22" id="unselected" onclick="onSelect(22)">인테리어+</li>
<li class="group23" id="unselected" onclick="onSelect(23)">목욕탕+</li>
<li class="group24" id="unselected" onclick="onSelect(24)">교습학원+</li>
<li class="group25" id="unselected" onclick="onSelect(25)">어학원+</li>
<li class="group26" id="unselected" onclick="onSelect(26)">예체능학원+</li>
<li class="group27" id="unselected" onclick="onSelect(27)">부동산중개업+</li>
<li class="group28" id="unselected" onclick="onSelect(28)">이발소+</li>
<li class="group29" id="unselected" onclick="onSelect(29)">미용실+</li>
<li class="group30" id="unselected" onclick="onSelect(30)">세탁소+</li>
<li class="group31" id="unselected" onclick="onSelect(31)">PC방+</li>
<li class="group32" id="unselected" onclick="onSelect(32)">노래방+</li>
<li class="group33" id="unselected" onclick="onSelect(33)">호텔+</li>
<li class="group34" id="unselected" onclick="onSelect(34)">여관모텔여인숙+</li>
<li class="group35" id="unselected" onclick="onSelect(35)">펜션+</li>
</ul>
</aside>
</div>
</body>
</html>
This file has been truncated, but you can view the full file.
function readTotalSites() { var totalSites = [
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[[127.06877,37.430355],[127.07102,37.430355],[127.07102,37.432175],[127.06877,37.432175],[127.06877,37.430355]],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[[126.90199,37.43399],[126.90424,37.43399],[126.90424,37.43581],[126.90199,37.43581],[126.90199,37.43399]],
[[126.90424,37.43399],[126.906494,37.43399],[126.906494,37.43581],[126.90424,37.43581],[126.90424,37.43399]],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[[126.90199,37.43581],[126.90424,37.43581],[126.90424,37.43763],[126.90199,37.43763],[126.90199,37.43581]],
[[126.90424,37.43581],[126.906494,37.43581],[126.906494,37.43763],[126.90424,37.43763],[126.90424,37.43581]],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[[126.90199,37.437626],[126.90424,37.437626],[126.90424,37.439445],[126.90199,37.439445],[126.90199,37.437626]],
[[126.90424,37.437626],[126.906494,37.437626],[126.906494,37.439445],[126.90424,37.439445],[126.90424,37.437626]],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[[126.90199,37.439445],[126.90424,37.439445],[126.90424,37.441265],[126.90199,37.441265],[126.90199,37.439445]],
[[126.90424,37.439445],[126.906494,37.439445],[126.906494,37.441265],[126.90424,37.441265],[126.90424,37.439445]],
[[126.906494,37.439445],[126.908745,37.439445],[126.908745,37.441265],[126.906494,37.441265],[126.906494,37.439445]],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[[126.899734,37.441265],[126.901985,37.441265],[126.901985,37.443085],[126.899734,37.443085],[126.899734,37.441265]],
[[126.90199,37.441265],[126.90424,37.441265],[126.90424,37.443085],[126.90199,37.443085],[126.90199,37.441265]],
[[126.90424,37.441265],[126.906494,37.441265],[126.906494,37.443085],[126.90424,37.443085],[126.90424,37.441265]],
[[126.906494,37.441265],[126.908745,37.441265],[126.908745,37.443085],[126.906494,37.443085],[126.906494,37.441265]],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],