{"id":5114,"date":"2018-03-19T14:38:18","date_gmt":"2018-03-19T05:38:18","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=5114"},"modified":"2020-05-28T14:04:02","modified_gmt":"2020-05-28T05:04:02","slug":"fingereyes-xr%ec%97%90%ec%84%9c-%ec%86%8d%ec%84%b1%ea%b0%92%ec%97%90-%eb%94%b0%eb%9d%bc-%eb%9d%bc%eb%b2%a8-%ed%85%8d%ec%8a%a4%ed%8a%b8%ec%97%90-%eb%8c%80%ed%95%9c-%ea%b7%b8%eb%a6%ac%ea%b8%b0-%ec%8b%ac","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=5114","title":{"rendered":"FingerEyes-Xr\uc5d0\uc11c \uc18d\uc131\uac12\uc5d0 \ub530\ub77c \ub77c\ubca8 \ud14d\uc2a4\ud2b8\uc5d0 \ub300\ud55c \uadf8\ub9ac\uae30 \uc2ec\ubc8c \ubcc0\uacbd\ud558\uae30"},"content":{"rendered":"<p>\uc77c\ubc18\uc801\uc73c\ub85c\ub294 \ud558\ub098\uc758 \ub808\uc774\uc5b4\uc5d0 \ub300\ud574\uc11c \ub77c\ubca8\uc5d0 \ub300\ud55c \ud14d\uc2a4\ud2b8\ub294 \ud558\ub098\uc758 \uc2ec\ubc8c\ub85c \ud1b5\uc77c\ud574\uc11c \uc544\ub798\ucc98\ub7fc \ud45c\uc2dc\ud569\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2018\/03\/simple_label.png\" alt=\"\" width=\"1394\" height=\"1701\" class=\"aligncenter size-full wp-image-5109\" \/><\/p>\n<p>\uc704\uc5d0 \ud654\uba74\uc5d0 \ub300\ud55c \uc18c\uc2a4 \ucf54\ub4dc(\ucf54\ub4dcA)\ub294 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">\r\n&lt;!DOCTYPE html>\r\n&lt;html>\r\n&lt;head>\r\n    &lt;meta charset=\"utf-8\" \/>\r\n\r\n    &lt;style>\r\n        body {\r\n            margin: 0px;\r\n            padding: 0px;\r\n        }\r\n\r\n        #map {\r\n            top: 0px;\r\n            left: 0px;\r\n            position: absolute;\r\n            width: 100%;\r\n            height: 100%;\r\n            border: none;\r\n            outline: none;\r\n        }\r\n    &lt;\/style>\r\n\r\n    &lt;script src=\"..\/..\/scripts\/fingereyes-xr\/Xr.js\"><\/script>\r\n\r\n    &lt;script>\r\n        var map = null;\r\n\r\n        function onLoad() {\r\n            map = new Xr.Map(\"map\", {});\r\n\r\n            var lyr = new Xr.layers.ShapeMapLayer(\"lyr\",\r\n                {\r\n                    url: \"http:\/\/168.192.76.10:8080\/Xr?layerName=li_a@test\"\r\n                }\r\n            );\r\n            \r\n            \/\/ Label Setting           \r\n            var label = lyr.label();\r\n            label.enable(true);\r\n            label.formatter().fieldName(\"first_nv_n\");\r\n            label.theme().symbol().size(40).strokeWidth(5);\r\n            \/\/ .\r\n\r\n            var theme = lyr.theme();\r\n            theme.penSymbol().color(\"black\").width(3);\r\n            theme.brushSymbol().color(\"lightgray\");\r\n\r\n            var lm = map.layers();\r\n            lm.add(lyr);\r\n\r\n            map.onLayersAllReady(onLayersReady);\r\n\r\n            window.addEventListener(\"resize\", onResize);\r\n        }\r\n\r\n        var bFinishResizing = true;\r\n\r\n        function onResize() {\r\n            if (bFinishResizing) {\r\n                bFinishResizing = false;\r\n\r\n                setTimeout(function () {\r\n                    var newWidth = window.innerWidth;\r\n                    var newHeight = window.innerHeight;\r\n\r\n                    map.resize(newWidth, newHeight);\r\n                    map.update();\r\n\r\n                    bFinishResizing = true;\r\n                }, 500);                \r\n            }\r\n        }\r\n\r\n        function onLayersReady() {\r\n            var cm = map.coordMapper();\r\n            var lyr = map.layers(\"lyr\");\r\n            var mbr = lyr.MBR();\r\n\r\n            cm.zoomByMBR(mbr);\r\n\r\n            map.update();\r\n        }\r\n    &lt;\/script>\r\n\r\n    &lt;title>&lt;\/title>\r\n&lt;\/head>\r\n\r\n&lt;body onload=\"onLoad()\">\r\n    &lt;div id=\"map\" \/>\r\n&lt;\/body>\r\n&lt;\/html>\r\n<\/pre>\n<p>\uadf8\ub7ec\ub098 \uc18d\uc131\uac12\uc5d0 \ub530\ub77c \ub77c\ubca8 \ud14d\uc2a4\ud2b8\uc758 \uadf8\ub9ac\uae30 \uc2ec\ubc8c\uc744 \ub2ec\ub9ac\ud574\uc57c \ud560 \ud544\uc694\uac00 \uc788\uc744 \uc218 \uc788\ub294\ub370\uc694. \uc608\ub97c \ub4e4\uc5b4 \uc778\uad6c\uc218\uc5d0 \ub530\ub77c \ub77c\ubca8\uc758 \uae00\uc790 \uc0c9\uc0c1\uc744 \ubcc0\uacbd\ud558\uac70\ub098 \ud3f0\ud2b8\uc758 \ud06c\uae30\ub97c \ubcc0\uacbd\ud558\uc5ec \ud45c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574\uc11c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ud074\ub798\uc2a4\uc758 \uc815\uc758\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nCustomLabelTheme = Xr.Class({\r\n    name: \"CustomLabelTheme\",\r\n    extend: Xr.theme.ProgrammableLabelDrawTheme,\r\n    requires: [Xr.theme.ILabelDrawTheme],\r\n\r\n    construct: function (\/* ShapeMapLayer *\/ layer) {\r\n        this.superclass(layer);\r\n\r\n        this._fieldIndex = -1;\r\n\r\n        var minValue = 13;\r\n        var maxValue = 104;\r\n        var stepCount = 5;\r\n        var stepValue = (maxValue - minValue) \/ stepCount;\r\n        var colors = ['#f1c40f', '#f39c12', '#e67e22', '#e74c3c', '#c0392b'];\r\n        var sizes = [20, 25, 30, 40, 50];\r\n        var symbols = [];\r\n\r\n        for (var i = 0; i < stepCount; i++) {\r\n            var FS = new Xr.symbol.FontSymbol();\r\n            FS.color(colors[i]).size(sizes[i]).strokeWidth(sizes[i]\/10);\r\n                    \r\n            var symbol = {\r\n                fromValue: minValue + (i * stepValue),\r\n                toValue: minValue + ((i + 1) * stepValue),\r\n                symbol: FS\r\n            };\r\n\r\n            symbols[i] = symbol;\r\n        }\r\n\r\n        this._symbols = symbols;\r\n        this._stepCount = stepCount;\r\n    },\r\n\r\n    methods: {\r\n        \/* FontSymbol *\/ symbol: function (\/* ShapeRow *\/ shapeRow, \/* FieldSet *\/ fieldSet, \/* AttributeRow *\/ attributeRow) {\r\n            if (this._fieldIndex === -1) {\r\n                this._fieldIndex = fieldSet.fieldIndex(\"sum_ho_res\");\r\n            }\r\n\r\n            var value = attributeRow.valueAsString(this._fieldIndex);\r\n            var stepCount = this._stepCount;\r\n            var symbols = this._symbols;\r\n            var symbol = undefined;\r\n\r\n            for (var i = 0; i < stepCount; i++) {\r\n                symbol = symbols[i];\r\n\r\n                if (value >= symbol.fromValue && value < symbol.toValue) {\r\n                    break;\r\n                }\r\n            }\r\n\r\n            return symbol.symbol;\r\n        },\r\n\r\n        \/* boolean *\/ needAttribute: function () {\r\n            return true;\r\n        }\r\n    }\r\n});\r\n<\/pre>\n<p>\uc704\uc758 CustomLabelTheme \ud074\ub798\uc2a4\ub294 \ud45c\uc2dc\ud560 \ub77c\ubca8\uc758 \ud14d\uc2a4\ud2b8\uc758 \uc2ec\ubc8c\uc744 \uc18d\uc131\uac12\uc5d0 \ub530\ub77c \ubcc0\uacbd\ud560 \uc218 \uc788\ub294 \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uba70, \uc774\ub97c \uc704\ud574\uc11c Xr.theme.ProgrammableLabelDrawTheme \ud074\ub798\uc2a4\ub97c \uc0c1\uc18d\ud558\uace0 Xr.theme.ILabelDrawTheme \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774 \ud074\ub798\uc2a4\uc758 \uc0dd\uc131\uc790\uc5d0\uc11c\ub294 \ub77c\ubca8 \ud14d\uc2a4\ud2b8\uc758 \ud45c\uc2dc\ub97c \uc704\ud574 \uc0ac\uc6a9\ud560 \ud3f0\ud2b8 \uc2ec\ubc8c\uc744 \ubbf8\ub9ac \uc0dd\uc131\ud574 \ub450\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ud3f0\ud2b8 \uc2ec\ubc8c\uc758 \uc0dd\uc131 \uaddc\uce59\uc740 \uc18d\uc131\uac12\uc758 \ucd5c\ub300\uac12\uacfc \ucd5c\uc18c\uac12\uc744 \uc774\ubbf8 \uc54c\uace0 \uc788\ub2e4\uace0 \ud560\ub54c(11\ubc88\uacfc 12\ubc88 \ucf54\ub4dc\uc5d0 \ub9e4\uc9c1\ub118\ubc84\ub85c \uc2ec\uc5b4 \ub450\uc5c8\uc9c0\ub9cc \uc2e4\uc81c \uc801\uc6a9\uc2dc\uc5d0\ub294 \uc774\ub7ec\ud55c \ucd5c\ub300, \ucd5c\uc18c\uac12\uc740 DBMS\uc758 Query\ub97c \ud1b5\ud574 \uc5bb\uc5b4\uc57c \ud568), \uc774 \uac12\uc758 \ubc94\uc704\ub97c 5\uac1c\uc758 \uad6c\uac04\uc73c\ub85c \uad6c\ubd84\ud558\uace0 \uac01 \uad6c\uac04\uc5d0 \ub300\ud574\uc11c \ud14d\uc2a4\ud2b8\uc758 \uc0c9\uc0c1\uacfc \ud06c\uae30\ub97c \uc774\uc6a9\ud558\uc5ec \ud3f0\ud2b8 \uc2ec\ubc8c\uc744 \ubbf8\ub9ac \uc815\uc758\ud574 \ubc30\uc5f4\uc5d0 \ub2f4\uace0 \ub450\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ub77c\ubca8\uc744 \uc2e4\uc81c\ub85c \uadf8\ub9b4\ub54c \uc0ac\uc6a9\ud560 \ud3f0\ud2b8\uc758 \uc2ec\ubc8c\uc744 \uc5bb\uae30 \uc704\ud574\uc11c\ub294 symbol \ud568\uc218\uac00 \uc2e4\ud589\ub418\uc5b4 \ud3f0\ud2b8 \uc2ec\ubc8c\uc774 \ubc18\ud658\ub418\ub294\ub370\uc694. symbol \ud568\uc218\ub97c \uc0b4\ud3b4\ubcf4\uba74, \uc18d\ub3c4 \ud5a5\uc0c1\uc744 \uc704\ud574 \ud3f0\ud2b8 \uc2ec\ubc8c\uc744 \uacb0\uc815\ud560 \ud544\ub4dc\uc758 \uc778\ub371\uc2a4\ub97c \uacc4\uc0b0\ud574 \ub450\uace0, \ud574\ub2f9 \ud544\ub4dc\uac12\uc744 \uc774\uc6a9\ud574 \uc0dd\uc131\uc790\uc5d0\uc11c \ubbf8\ub9ac \uc0dd\uc131\ud574 \ub450\uc5c8\ub358 5\uac1c\uc758 \ud3f0\ud2b8 \uc2ec\ubc8c \uc911 \ud558\ub098\ub97c \uc120\ud0dd\ud574 \ubc18\ud658\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud074\ub798\uc2a4\ub97c \uc801\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 \ucf54\ub4dcA\uc758 41\ubc88 \ucf54\ub4dc \ub300\uc2e0 \uc544\ub798\uc758 \ucf54\ub4dc\ub85c \ub300\uccb4\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nvar newTheme = new CustomLabelTheme(lyr);            \r\nlabel.theme(newTheme);\r\n<\/pre>\n<p>\uc774\uc81c \uc2e4\ud589 \uacb0\uacfc\uc5d0 \ub300\ud55c \uc774\ubbf8\uc9c0\ub97c \uc0b4\ud3b4\ubcf4\uba74 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2018\/03\/theme_label.png\" alt=\"\" width=\"1394\" height=\"1701\" class=\"aligncenter size-full wp-image-5120\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc77c\ubc18\uc801\uc73c\ub85c\ub294 \ud558\ub098\uc758 \ub808\uc774\uc5b4\uc5d0 \ub300\ud574\uc11c \ub77c\ubca8\uc5d0 \ub300\ud55c \ud14d\uc2a4\ud2b8\ub294 \ud558\ub098\uc758 \uc2ec\ubc8c\ub85c \ud1b5\uc77c\ud574\uc11c \uc544\ub798\ucc98\ub7fc \ud45c\uc2dc\ud569\ub2c8\ub2e4. \uc704\uc5d0 \ud654\uba74\uc5d0 \ub300\ud55c \uc18c\uc2a4 \ucf54\ub4dc(\ucf54\ub4dcA)\ub294 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4. &lt;!DOCTYPE html> &lt;html> &lt;head> &lt;meta charset=&#8221;utf-8&#8243; \/> &lt;style> body { margin: 0px; padding: 0px; } #map { top: 0px; left: 0px; position: absolute; width: 100%; height: 100%; border: none; outline: none; } &lt;\/style> &lt;script src=&#8221;..\/..\/scripts\/fingereyes-xr\/Xr.js&#8221;> &lt;script> &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=5114\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;FingerEyes-Xr\uc5d0\uc11c \uc18d\uc131\uac12\uc5d0 \ub530\ub77c \ub77c\ubca8 \ud14d\uc2a4\ud2b8\uc5d0 \ub300\ud55c \uadf8\ub9ac\uae30 \uc2ec\ubc8c \ubcc0\uacbd\ud558\uae30&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70],"tags":[],"class_list":["post-5114","post","type-post","status-publish","format-standard","hentry","category-fingereyes-xr"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/5114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5114"}],"version-history":[{"count":8,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/5114\/revisions"}],"predecessor-version":[{"id":9619,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/5114\/revisions\/9619"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5114"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}