{"id":5646,"date":"2020-07-14T09:08:34","date_gmt":"2020-07-14T00:08:34","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=5646"},"modified":"2020-07-20T21:44:34","modified_gmt":"2020-07-20T12:44:34","slug":"fingereyes-xr%ec%9d%98-%ed%8e%b8%ec%a7%91-%ec%9d%b4%eb%b2%a4%ed%8a%b8","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=5646","title":{"rendered":"FingerEyes-Xr\uc758 \ud3b8\uc9d1 \uc774\ubca4\ud2b8"},"content":{"rendered":"<p>FingerEyes-Xr\uc758 \uacf5\uac04 \ub370\uc774\ud130 \ud3b8\uc9d1\uc2dc \ubc1c\uc0dd\ud558\ub294 \uc774\ubca4\ud2b8\ub294 1\uac1c\uc785\ub2c8\ub2e4. Xr.Events.EditingCompleted\ub85c \uc0ac\uc6a9\uc790\uac00 \uc120\ud0dd\ud55c \ub3c4\ud615\uc744 \ud3b8\uc9d1\ud55c \ub4a4\uc5d0 \ubc1c\uc0dd\ud558\ub294 \uc774\ubca4\ud2b8\uc785\ub2c8\ub2e4. \ub4f1\ub85d\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nmap.addEventListener(Xr.Events.EditingCompleted, onMapEditingCompleted);\r\n<\/pre>\n<p>\uadf8\ub9ac\uace0 \uc774\ubca4\ud2b8\uc5d0 \ub300\ud55c \ucf5c\ubc31 \ud568\uc218\uc778 onMapEditingCompleted \ud568\uc218\ub294 \uc544\ub798\uc640 \uac19\uc774 \uc791\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nfunction onMapEditingCompleted (e) \r\n{\r\n    let map = e.map;\r\n    let type = e.editCommandType;\r\n    let rowId = e.rowId;\r\n\r\n    if(type === Xr.edit.AddPartCommand.TYPE) {\r\n        \/\/ \uc5ec\ub7ec \uac1c\uc758 \uc694\uc18c\ub97c \uac16\ub294 \ub3c4\ud615\uc5d0 \ub300\ud574 1\uac1c\uc758 \uc0c8\ub85c\uc6b4 \uc694\uc18c\uac00 \ucd94\uac00\ub420 \ub54c ...\r\n    } else if(type === Xr.edit.AddVertexCommand.TYPE) {\r\n        \/\/ \ub3c4\ud615\uc5d0 \ub300\ud574 \uc815\uc810\uc774 \ud558\ub098 \ucd94\uac00\ub420 \ub54c ...\r\n    } else if(type === Xr.edit.MoveCommand.TYPE) {\r\n        \/\/ \ub3c4\ud615 \uc804\uccb4\uac00 \uc774\ub3d9\ub420 \ub54c ...\r\n    } else if(type === Xr.edit.MoveControlPointCommand.TYPE) {\r\n        \/\/ \ub3c4\ud615\uc758 \uc81c\uc5b4\uc810\uc774 \uc774\ub3d9\ub418\uc5c8\uc744 \ub54c ...\r\n    } else if(type === Xr.edit.NewCommand.TYPE) {\r\n        \/\/ \uc0c8\ub85c\uc6b4 \ub3c4\ud615\uc774 \uc0dd\uc131\ub418\uc5c8\uc744 \ub54c ...\r\n    } else if(type === Xr.edit.RemoveCommand.TYPE) {\r\n        \/\/ \uae30\uc874\uc758 \ub3c4\ud615\uc744 \uc81c\uac70\ud588\uc744 \ub54c ...\r\n    } else if(type === Xr.edit.RemovePartCommand.TYPE) {\r\n        \/\/ \ub3c4\ud615\uc744 \uad6c\uc131\ud558\ub294 \ud558\ub098\uc758 \uc694\uc18c\ub97c \uc81c\uac70\ud588\uc744 \ub54c ...\r\n    } else if(type === Xr.edit.RemoveVertexCommand.TYPE) {\r\n        \/\/ \ub3c4\ud615\uc744 \uad6c\uc131\ud558\ub294 \uc815\uc810\uc744 \uc81c\uac70\ud588\uc744 \ub54c ...\r\n    }\r\n}\r\n<\/pre>\n<p>\uc774\ubca4\ud2b8 \ud568\uc218\ub85c \ub118\uaca8\uc9c0\ub294 \uc774\ubca4\ud2b8 \uac1d\uccb4\uc778 e\uc758 map\uc740 \ud3b8\uc9d1\uc774 \uc774\ub8e8\uc5b4\uc9c4 \uc9c0\ub3c4 \uac1d\uccb4\ub97c \uc758\ubbf8\ud558\uba70, rowId\ub294 \ud3b8\uc9d1 \ub300\uc0c1\uc774 \ub418\ub294 Row\uc758 ID \uac12\uc785\ub2c8\ub2e4. \uadf8\ub9ac\uace0 editCommandType\uc740 \uc704\uc758 \ucf54\ub4dc\uc758 if \ubb38\uc5d0\uc11c \uc5b8\uae09\ud55c \uc8fc\uc11d\uc758 \ub0b4\uc6a9\uc77c \ub54c\ub97c \ud30c\uc545\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/p>\n<p>\ucd94\uac00\ub85c, \uc704\uc758 \ud3b8\uc9d1 \uc774\ubca4\ud2b8\ub97c \uc704\ud574 \uc120\ud589\ub418\uc5b4\uc57c\ud560 \uac83\uc740 \ub3c4\ud615\uc5d0 \ub300\ud55c \ud3b8\uc9d1 \ud589\uc704\uc758 \uc2dc\ubc1c\uc744 \ubc1c\uc0dd\ud574\uc918\uc57c \ud55c\ub2e4\ub294 \uac83\uc785\ub2c8\ub2e4. \uc544\ub798\ub294 \uadf8\ub798\ud53d \ub808\uc774\uc5b4\uc5d0 \uc0ac\uac01\ud615\uc744 \uc0c8\ub86d\uac8c \uc0dd\uc131\ud558\ub294 \uac83\uc5d0 \ub300\ud55c \ud3b8\uc9d1\uc758 \uc2dc\uc791 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nlet gl = new Xr.layers.GraphicLayer(\"gl_community\");\r\n\r\nmap.layers().add(gl);\r\nmap.edit().targetGraphicLayer(gl);\r\n\r\nmap.userMode(Xr.UserModeEnum.EDIT);\r\nmap.edit().newRectangle(0);\r\n<\/pre>\n<p>\ub9c8\uc9c0\ub9c9 \ucf54\ub4dc\uc5d0\uc11c newRectangle \ud568\uc218\uc758 \uc778\uc790\uac12\uc778 0\uc740 \uc0c8\ub86d\uac8c \uc0dd\uc131\ud560 \ub3c4\ud615\uc774 \uac00\uc9c8 id \uac12\uc785\ub2c8\ub2e4.<\/p>\n<p>\ub9cc\uc57d \uc0c8\ub85c\uc6b4 \ub3c4\ud615\uc774 \ucd94\uac00\ub418\uba74 onMapEditingCompleted \uc774\ubca4\ud2b8\uc758 Xr.edit.NewCommand.TYPE \uc870\uac74\uc5d0 \uac78\ub9ac\uac8c \ub418\ub294\ub370, \uc774 \uc870\uac74\uc5d0\uc11c \ucd94\uac00\ub41c \ub3c4\ud615\uc758 \uc0c1\uc138 \uc815\ubcf4\ub97c \uc5bb\uae30 \uc704\ud55c \ucf54\ub4dc \uc608\uc2dc\ub294 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nfunction onMapEditingCompleted(e) {\r\n    let map = e.map;\r\n    let type = e.editCommandType;\r\n    let rowId = e.rowId;\r\n            \r\n    if ( ... ) {\r\n        ...\r\n    } else if (type === Xr.edit.NewCommand.TYPE) {\r\n        let row = map.edit().targetGraphicLayer().row(rowId);\r\n        let data = row.graphicData().data();\r\n\r\n        if (data instanceof Xr.data.RectangleShapeData) {\r\n            console.log(\"RECTANGLE:\", data.minX, data.minY, data.maxX, data.maxY);\r\n        } else if (data instanceof Xr.data.EllipseShapeData) {\r\n            console.log(\"ELLIPSE:\", data.cx, data.cy, data.rx, data.ry);\r\n        } else if (data instanceof Xr.data.PointShapeData) {\r\n            console.log(\"POINT:\", data.x, data.y);\r\n        } else if (data instanceof Xr.data.PolylineShapeData) {\r\n            let cntParts = data.length;\r\n            console.log(\"POLYLINE:\");\r\n            for (let iPart = 0; iPart < cntParts; iPart++) {\r\n                let part = data[iPart];\r\n                let cntVtx = part.length;\r\n                for (let iVtx = 0; iVtx < cntVtx; iVtx++) {\r\n                    console.log(part[iVtx].x + \", \" + part[iVtx].y);\r\n                }\r\n            }\r\n        } else if (data instanceof Xr.data.PolygonShapeData) {\r\n            console.log(\"POLYGON:\");\r\n            let cntParts = data.length;\r\n            for (let iPart = 0; iPart < cntParts; iPart++) {\r\n                let part = data[iPart];\r\n                let cntVtx = part.length;\r\n                for (let iVtx = 0; iVtx < cntVtx; iVtx++) {\r\n                    console.log(part[iVtx].x + \", \" + part[iVtx].y);\r\n                }\r\n            }\r\n        }\r\n    } else if ( ... ) {\r\n        ...\r\n    }\r\n}\r\n<\/pre>\n<p>\ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc704\uc758 \ud3b8\uc9d1 \uc774\ubca4\ud2b8\uac00 \uc801\uc6a9\ub41c \uc2e4\uc81c \ud3b8\uc9d1 \uae30\ub2a5\uc5d0 \ub300\ud55c \ub3d9\uc601\uc0c1\uc740 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p><video width=\"100%\"  controls><source src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/2019\/06\/nexgen_edit.mp4\" type=\"video\/mp4\">\ube44\ub514\uc624\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294 \uc6f9\ube0c\ub77c\uc6b0\uc838\uc785\ub2c8\ub2e4.<\/video><\/p>\n","protected":false},"excerpt":{"rendered":"<p>FingerEyes-Xr\uc758 \uacf5\uac04 \ub370\uc774\ud130 \ud3b8\uc9d1\uc2dc \ubc1c\uc0dd\ud558\ub294 \uc774\ubca4\ud2b8\ub294 1\uac1c\uc785\ub2c8\ub2e4. Xr.Events.EditingCompleted\ub85c \uc0ac\uc6a9\uc790\uac00 \uc120\ud0dd\ud55c \ub3c4\ud615\uc744 \ud3b8\uc9d1\ud55c \ub4a4\uc5d0 \ubc1c\uc0dd\ud558\ub294 \uc774\ubca4\ud2b8\uc785\ub2c8\ub2e4. \ub4f1\ub85d\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. map.addEventListener(Xr.Events.EditingCompleted, onMapEditingCompleted); \uadf8\ub9ac\uace0 \uc774\ubca4\ud2b8\uc5d0 \ub300\ud55c \ucf5c\ubc31 \ud568\uc218\uc778 onMapEditingCompleted \ud568\uc218\ub294 \uc544\ub798\uc640 \uac19\uc774 \uc791\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. function onMapEditingCompleted (e) { let map = e.map; let type = e.editCommandType; let rowId = e.rowId; if(type === Xr.edit.AddPartCommand.TYPE) { \/\/ \uc5ec\ub7ec \uac1c\uc758 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=5646\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;FingerEyes-Xr\uc758 \ud3b8\uc9d1 \uc774\ubca4\ud2b8&#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-5646","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\/5646","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=5646"}],"version-history":[{"count":10,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/5646\/revisions"}],"predecessor-version":[{"id":14484,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/5646\/revisions\/14484"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5646"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5646"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}