{"id":1151,"date":"2010-04-18T11:38:57","date_gmt":"2010-04-18T11:38:57","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=1151"},"modified":"2017-01-29T09:25:40","modified_gmt":"2017-01-29T00:25:40","slug":"openmap-xr-shp%ec%9d%98-vertex-%ec%96%bb%ea%b8%b0","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=1151","title":{"rendered":"[GIS] DuraMap-Xr, SHP\uc758 Vertex \uc5bb\uae30"},"content":{"rendered":"<p>DuraMap-Xr\uc744 \ud1b5\ud574 SHP\uc744 \uc77d\uc5b4 \ucd94\uac00\ub41c \ub808\uc774\uc5b4\uc758 \ud0c0\uc785\uc740 ShapeMapLayer\uc785\ub2c8\ub2e4. \uc774 ShapeMapLayer\ub97c \ud1b5\ud574 \uc218\uce58\uc9c0\ub3c4\uc5d0 \ub300\ud55c \ub3c4\ud615 \ub370\uc774\ud130\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\ub294 \ud14c\uc774\ube14\uc744 \uc5bb\uc744 \uc218 \uc788\uace0 \uc774 \ud14c\uc774\ube14\uc744 \ud1b5\ud574 \uac01 \ub3c4\ud615\uc5d0 \ub300\ud55c \ub85c\uc6b0(Row)\ub97c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \uc774 Row\ub97c \ud1b5\ud574 \ub3c4\ud615\uc758 \uc885\ub958\ubfd0\ub9cc \uc544\ub2c8\ub77c MBR\uacfc \ub3c4\ud615\uc744 \uad6c\uc131\ud558\ub294 \uc88c\ud45c\uc758 \ubaa9\ub85d\uc744 \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae00\uc740 Xr\uc5d0\uc11c \ub3c4\ud615\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uc5bb\uae30\uc704\ud55c \ubc29\ubc95\uc5d0 \ub300\ud574 \uc124\uba85\ud569\ub2c8\ub2e4. \uba3c\uc800 \uc544\ub798\uc640 \uac19\uc740 \ud3fc\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1253649043.jpg\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" width=\"490\" height=\"290\" \/><\/p>\n<p>Xr \ub9f5 \uc5d4\uc9c4\uacfc Open SHP\ub77c\ub294 \ubc84\ud2bc \uadf8\ub9ac\uace0 ListBox \ucee8\ud2b8\ub864\uc774 \ubc30\uce58\ub418\uc5c8\uc73c\uba70 \ubcf4\uc774\uc9c0\ub294 \uc54a\uc9c0\ub9cc SHP \ud30c\uc77c\uc744 \uc77d\uae30 \uc704\ud55c OpenFileDialog \ucee8\ud2b8\ub864\uc774 \ucd94\uac00\ub418\uc5b4\uc838 \uc788\uc2b5\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc778 \uc2e4\ud589 \ud750\ub984\uc740 OpenSHP\uc744 \ud074\ub9ad\ud558\uba74 Xr \ub9f5 \uc5d4\uc9c4\uc5d0 \ucd94\uac00\ud560 SHP \ud30c\uc77c\uc744 \uc120\ud0dd\ud558\uae30 \uc704\ud55c \ud30c\uc77c \uc5f4\uae30 \ub300\ud654\uc0c1\uc790\uac00 \ud45c\uc2dc\ub418\uba70 \uc6d0\ud558\ub294 SHP \ud30c\uc77c\uc744 \uc120\ud0dd\ud558\uac8c \ub418\uba74 Xr \ub9f5 \uc5d4\uc9c4\uc5d0 \ud45c\uc2dc\ub418\uba70 \ub3d9\uc2dc\uc5d0 ListBox \ucee8\ud2b8\ub864\uc5d0 SHP \ud30c\uc77c\uc744 \uad6c\uc131\ud558\ub294 \ub3c4\ud615\uc5d0 \ub300\ud55c MBR \uc88c\ud45c\ub97c \ud45c\uc2dc\ud569\ub2c8\ub2e4. \uac00\uc7a5 \uba3c\uc800 Open SHP \ubc84\ud2bc\uc758 \ucf54\ub4dc\ub97c \uc0b4\ud3b4\ubcf4\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre>\r\nDialogResult DR = openFileDialog1.ShowDialog();\r\nif(DR == DialogResult.OK)\r\n{\r\n\u00a0 \u00a0 bool bExisted = axXr1.Layers.IsLayerExist(\"map\");\r\n\u00a0 \u00a0 if (bExisted) axXr1.Layers.RemoveLayer(\"map\");\r\n\r\n\u00a0 \u00a0 axXr1.Layers.AddShapeMapLayer(\"map\", openFileDialog1.FileName);\r\n\u00a0 \u00a0 axXr1.WaitForAllConnections();\r\n\u00a0 \u00a0 axXr1.ZoomFullExtent();\r\n\r\n\u00a0 \u00a0 OutputVertexToListBox();\r\n}<\/pre>\n<p><strong>4~5\ubc88 \ucf54\ub4dc<\/strong>\ub97c \ud1b5\ud574 \ubc84\ud2bc\uc744 \ub450\ubc88 \uc774\uc0c1 \ub20c\ub800\uc744 \uacbd\uc6b0 map\uc774\ub77c\ub294 \uc774\ub984\uc758 \ub808\uc774\uc5b4\uac00 \ub2e4\uc2dc \ucd94\uac00\ub418\ub294 \uc77c\uc774 \uc5c6\ub3c4\ub85d \uae30\uc874\uc758 map \uc774\ub77c\ub294 \uc774\ub984\uc758 \ub808\uc774\uc5b4\ub97c \uc81c\uac70\ud574\uc8fc\uace0 \uc788\uc2b5\ub2c8\ub2e4. <strong>7~9\ubc88 \ucf54\ub4dc<\/strong>\ub294 \uc120\ud0dd\ud55c SHP \ud30c\uc77c\uc744 map\uc774\ub77c\ub294 \uc774\ub984\uc758 \ub808\uc774\uc5b4\ub85c \ucd94\uac00\ud558\uace0 \ucd94\uac00\uac00 \ub420\ub54c\uae4c\uc9c0 \uae30\ub2e4\ub838\ub2e4\uac00 \ub808\uc774\uc5b4\ub97c \ud654\uba74\uc0c1\uc5d0 \ud45c\uc2dc\ud558\ub3c4\ub85d \ud558\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \uc544\uc9c1 \uc815\uc758\ub418\uc9c0 \uc54a\uc558\uc9c0\ub9cc \uac00\uc7a5 \uc911\uc694\ud55c OutputVertexToListBox \ud568\uc218\ub97c \ud1b5\ud574 \ub808\uc774\uc5b4\ub97c \uad6c\uc131\ud558\ub294 \ub3c4\ud615\uc758 MBR\uc744 \ud45c\uc2dc\ud558\ub3c4\ub85d \ud569\ub2c8\ub2e4. \uadf8\ub7fc OutputVertexToListBox \ud568\uc218\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf4\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre>\r\nprivate void OutputVertexToListBox()\r\n{\r\n\u00a0 \u00a0 bool bExisted = axXr1.Layers.IsLayerExist(\"map\");\r\n\u00a0 \u00a0 if (!bExisted) return;\r\n\r\n\u00a0 \u00a0 XrMapLib.IShapeMapLayer lyr = axXr1.Layers.GetLayerAsShapeMap(\"map\");\r\n\u00a0 \u00a0 XrMapLib.IShapeTable Tbl = lyr.ShapeTable;\r\n\r\n\u00a0 \u00a0 int FID = 0;\r\n\u00a0 \u00a0 XrMapLib.IShapeRow row = null;\r\n\u00a0 \u00a0 while ((row = Tbl.GetRow(FID)) != null)\r\n\u00a0 \u00a0 {\r\n\u00a0 \u00a0 \u00a0 \u00a0 XrMapLib.IExtent MBR = row.Extent;\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 listBox1.Items.Add(\"FID: \" + FID);\r\n\u00a0 \u00a0 \u00a0 \u00a0 listBox1.Items.Add(\"\u00a0 MinX: \" + MBR.MinX);\r\n\u00a0 \u00a0 \u00a0 \u00a0 listBox1.Items.Add(\"\u00a0 MinY: \" + MBR.MinY);\r\n\u00a0 \u00a0 \u00a0 \u00a0 listBox1.Items.Add(\"\u00a0 MaxX: \" + MBR.MaxX);\r\n\u00a0 \u00a0 \u00a0 \u00a0 listBox1.Items.Add(\"\u00a0 MaxY: \" + MBR.MaxY);\r\n\u00a0 \u00a0 \u00a0 \u00a0 listBox1.Items.Add(\"\\n\");\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 FID++;\r\n\u00a0 \u00a0 }\r\n}<\/pre>\n<p>\ube44\uad50\uc801 \uc9e7\uac8c \uad6c\uc131\ub41c \ud568\uc218\uc774\uc9c0\ub9cc \ucf54\ub4dc \ub2e8\uc704\ub85c \uc124\uba85\ud558\uba74&#8230; \uba3c\uc800 <strong>3~4\ubc88 \ucf54\ub4dc<\/strong>\ub294 map\uc774\ub77c\ub294 \uc774\ub984\uc758 \ub808\uc774\uc5b4\uac00 \uc874\uc7ac\ud558\ub294\uc9c0 \uac80\uc0ac\ud558\uc5ec \uc874\uc7ac\ud558\uc9c0 \uc54a\uc73c\uba74 \ubc14\ub85c \ud568\uc218\ub97c \uc885\ub8cc\uc2dc\ud0a4\ub3c4\ub85d \ud569\ub2c8\ub2e4. <strong>6~7\ubc88 \ucf54\ub4dc<\/strong>\ub294 map\uc774\ub77c\ub294 \uc774\ub984\uc758 \ub808\uc774\uc5b4\ub97c \uc5bb\uc5b4\uc640 \uc5bb\uc740 \ub808\uc774\uc5b4\uc758 \ub3c4\ud615 \ub370\uc774\ud130\ub97c \uac00\uc9c0\uace0 \uc788\ub294 \ud14c\uc774\ube14\uc744 \uac00\uc838\uc640 IShapeTable\uc774\ub77c\ub294 \uc778\ud130\ud398\uc774\uc2a4 \ud0c0\uc785\uc5d0 \uc800\uc7a5\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 <strong>9~10\ubc88 \ucf54\ub4dc<\/strong>\ub294 \ud14c\uc774\ube14\uc5d0 \uc800\uc7a5\ub41c Row\uc744 \uc5bb\uae30 \uc704\ud55c \uc900\ube44\uc791\uc5c5\uc73c\ub85c\uc368 Row\uc744 \uc5bb\uae30 \uc704\ud574\uc11c\ub294 \uc815\uc218\ud615 \uac12\uc778 FID\uc640 Row\ub97c \uc800\uc7a5\ud560 \uc778\ud130\ud398\uc774\uc2a4 \ud0c0\uc785\uc778 IShapeRow\uc758 \ubcc0\uc218\ub97c \uc900\ube44\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c SHP \ud30c\uc77c\uc758 FID\ub294 0\uc5d0\uc11c\ubd80\ud130 (Row\uc758 \uac1c\uc218 &#8211; 1)\uae4c\uc9c0 \uc874\uc7ac\ud569\ub2c8\ub2e4. IShapeTable\uc758 GetRow\uc5d0 \uc633\ubc14\ub974\uc9c0 \uc54a\uc740 FID\uac00 \uc9c0\uc815\ub418\uba74 null\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4. <strong>11~23\ubc88 \ucf54\ub4dc<\/strong>\uac00 Row\uc744 \ud558\ub098 \ud558\ub098 \uac00\uc838\uc640 MBR\uc744 \uc5bb\uc5b4 listBox1 \ucee8\ud2b8\ub864\uc5d0 \ubb38\uc790\uc5f4 \ud615\ud0dc\ub85c \uad6c\uc131\ud558\uc5ec \ucd94\uac00\ud558\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4. IShapwRow\ub97c \ud1b5\ud574 MBR\uacfc \uc88c\ud45c\uc758 \uac1c\uc218, \uc88c\ud45c\ub97c \uc5bb\uc744 \uc218 \uc774 \uc218 \uc788\ub294 \ub9e4\uc11c\ub4dc\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. \ub3c4\ud615\uc740 \uc5ec\ub7ec\uac1c\uc758 \ubd80\ubd84\uc73c\ub85c \uad6c\uc131\ub420 \uc218 \uc788\ub294\ub370.. \uba87\uac1c\uc758 \ubd80\ubd84\uc73c\ub85c \uad6c\uc131\ub418\uc5c8\ub294\uc9c0 \uc5ed\uc2dc \uc5bb\uc5b4\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uc640 \uad00\ub828\ub41c \ub9e4\uc11c\ub4dc\ub294 GetVertex, GetVertexCountFromPart, GetVertexFromPart, PartCount, VertexCount, Vertex\uc785\ub2c8\ub2e4. Vertex \ud504\ub85c\ud37c\ud2f0\ub294 \ub3c4\ud615\uc744 \uad6c\uc131\ud558\ub294 \uac00\uc7a5 \uccab\ubc88\uc9f8 \uc815\uc810\uc744 \ubc18\ud658\ud558\ub294 \ud3b8\ub9ac\uc131\uc744 \uc704\ud574 \uc81c\uacf5\ub429\ub2c8\ub2e4. \ub2e4\uc74c\uc740 \ud544\uc790\uc758 PC\uc5d0 \uc800\uc7a5\ub41c SHP \ud30c\uc77c\uc5d0 \ub300\ud574 \uc2e4\ud589\ub41c \uacb0\uacfc \ud654\uba74\uc785\ub2c8\ub2e4.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.gisdeveloper.co.kr\/wp-content\/uploads\/1\/1249508634.jpg\" alt=\"\uc0ac\uc6a9\uc790 \uc0bd\uc785 \uc774\ubbf8\uc9c0\" width=\"486\" height=\"288\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>DuraMap-Xr\uc744 \ud1b5\ud574 SHP\uc744 \uc77d\uc5b4 \ucd94\uac00\ub41c \ub808\uc774\uc5b4\uc758 \ud0c0\uc785\uc740 ShapeMapLayer\uc785\ub2c8\ub2e4. \uc774 ShapeMapLayer\ub97c \ud1b5\ud574 \uc218\uce58\uc9c0\ub3c4\uc5d0 \ub300\ud55c \ub3c4\ud615 \ub370\uc774\ud130\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\ub294 \ud14c\uc774\ube14\uc744 \uc5bb\uc744 \uc218 \uc788\uace0 \uc774 \ud14c\uc774\ube14\uc744 \ud1b5\ud574 \uac01 \ub3c4\ud615\uc5d0 \ub300\ud55c \ub85c\uc6b0(Row)\ub97c \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \uc774 Row\ub97c \ud1b5\ud574 \ub3c4\ud615\uc758 \uc885\ub958\ubfd0\ub9cc \uc544\ub2c8\ub77c MBR\uacfc \ub3c4\ud615\uc744 \uad6c\uc131\ud558\ub294 \uc88c\ud45c\uc758 \ubaa9\ub85d\uc744 \uc5bb\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \uae00\uc740 Xr\uc5d0\uc11c \ub3c4\ud615\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uc5bb\uae30\uc704\ud55c \ubc29\ubc95\uc5d0 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=1151\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;[GIS] DuraMap-Xr, SHP\uc758 Vertex \uc5bb\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":[57],"tags":[5,53],"class_list":["post-1151","post","type-post","status-publish","format-standard","hentry","category-duramap-xr","tag-gis","tag-xr"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/1151","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=1151"}],"version-history":[{"count":1,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/1151\/revisions"}],"predecessor-version":[{"id":3352,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/1151\/revisions\/3352"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1151"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}