2010년 4월 26일 월요일

서울특별시 도시계획 조례에 정의된 4대문의 경계

서울특별시 도시계획 조례 시행규칙」 제 16조에 보면 4대문 안의 범역 획정에 관한 내용이 나옵니다.

GIS 분석에 활용하기 위해서 각 필지별로 4대문 안과 밖을 구분하고 싶은데 이의 정확한 경계를 어떻게 그을 수 있을 까요? 아시는 분 답변 부탁드립니다.

서울특별시 도시계획 조례 시행규칙
제16조(4대문 안의 범역 획정 등) 조례 제54조제5항, 제55조제1항제7호부터 제10호까지의 각각의 단서 및 제55조제3항 각 호 외의 부분 단서에 따른 4대문 안의 범역은 퇴계로·다산로·왕산로·율곡로·사직로·의주로를 경계로 하여 그 주변지역을 포함하는 지역으로서 별지 도면에서 정한 구역으로 한다. (개정 2008.11.13)

※ 별지도면 : 4대문 범역 확정


참고 : 국가법령정보센터

2010년 4월 25일 일요일

용도지역 안에서의 건폐율 및 용적율

2010년 4월 25일 기준 「국토의 계획 및 이용에 관한 법률국토의 계획 및 이용에 관한 법률 시행령에 정의한 용도지역 행위제한 중 건폐율 및 용적율 현황입니다.

국토의 계획 및 이용에 관한 법률
[시행 2010. 6.30] [법률 제9861호, 2009.12.29, 일부개정]

제6장 용도지역ㆍ용도지구 및 용도구역에서의 행위 제한
제77조(용도지역의 건폐율)
제78조(용도지역에서의 용적률)

국토의 계획 및 이용에 관한 법률 시행령
 
[시행 2010. 4.23] [대통령령 제22128호, 2010. 4.20, 타법개정]

제6장 용도지역ㆍ용도지구 및 용도구역안에서의 행위제한
제84조(용도지역안에서의 건폐율)
제85조(용도지역안에서의 용적률)

▣ 국토의 계획 및 이용에 관한 법률 제1장 제2조의 용도지역 정의
15. "용도지역"이란 토지의 이용 및 건축물의 용도, 건폐율(「건축법」 제55조의 건폐율을 말한다. 이하 같다), 용적률(「건축법」 제56조의 용적률을 말한다. 이하 같다), 높이 등을 제한함으로써 토지를 경제적ㆍ효율적으로 이용하고 공공복리의 증진을 도모하기 위하여 서로 중복되지 아니하게 도시관리계획으로 결정하는 지역을 말한다.

▣ 건축법 제55조의 건폐율 정의
제55조 (건축물의 건폐율) 대지면적에 대한 건축면적(대지에 건축물이 둘 이상 있는 경우에는 이들 건축면적의 합계로 한다)의 비율(이하 "건폐율"이라 한다)의 최대한도는 「국토의 계획 및 이용에 관한 법률」 제77조에 따른 건폐율의 기준에 따른다. 다만, 이 법에서 기준을 완화하거나 강화하여 적용하도록 규정한 경우에는 그에 따른다.

건축법 제56조의 용적율 정의
제56조 (건축물의 용적률) 대지면적에 대한 연면적(대지에 건축물이 둘 이상 있는 경우에는 이들 연면적의 합계로 한다)의 비율(이하 "용적률"이라 한다)의 최대한도는 「국토의 계획 및 이용에 관한 법률」 제78조에 따른 용적률의 기준에 따른다. 다만, 이 법에서 기준을 완화하거나 강화하여 적용하도록 규정한 경우에는 그에 따른다.

▣ 용도지역별 건폐율 및 용적율
(단위:%)

대분류

중분류

소분류

세분류

건폐율

용적율하한

용적율상한

도시지역

주거지역

전용주거지역

1종전용주거지역

50

50

100

2종전용주거지역

50

100

150

일반주거지역

1종일반주거지역

60

100

200

2종일반주거지역

60

150

250

3종일반주거지역

50

200

300

준주거지역

준주거지역

70

200

500

상업지역

중심상업지역

중심상업지역

90

400

1,500

일반상업지역

일반상업지역

80

300

1,300

근린상업지역

근린상업지역

70

200

900

유통상업지역

유통상업지역

80

200

1,100

공업지역

전용공업지역

전용공업지역

70

150

300

일반공업지역

일반공업지역

70

200

350

준공업지역

준공업지역

70

200

400

녹지지역

보전녹지지역

보전녹지지역

20

50

80

생산녹지지역

생산녹지지역

20

50

100

자연녹지지역

자연녹지지역

20

50

100

관리지역

계획관리지역

계획관리지역

계획관리지역

40

50

100

생산관리지역

생산관리지역

생산관리지역

20

50

80

보전관리지역

보전관리지역

보전관리지역

20

50

80

농림지역

농림지역

농림지역

농림지역

20

50

80

자연환경

보전지역

자연환경

보전지역

자연환경

보전지역

자연환경

보전지역

20

50

80

 

※ 참고: 국가법령정보센터

JTS Topology Suite - Geometry Engine

현 Java 기반 Open Source GIS에서 거의 대부분 사용하고 있는 Geometry Engine은 JTS(
 - Tsusiat Software

특히 Martin Davis의 Blog Title이 정말 멋집니다...
Lin.ear th.inking - Because the shortest distance between two thoughts is a straight line

▣ JTS를 활용하는 Open Source GIS 및 JTS의 위상
<그림출처: http://www.osgeo.org/files/tyler/images/siglibre_foss_sig_relacion.png>

[ArcObjects]선택된 Feature를 Graphic Element로 변환

ArcObjects Code Snippet입니다.

ArcMap에서 피쳐를 선택한 후 TOC(Table Of Contents)에서 레이어 선택 후 선택한 피쳐를 그래픽으로 변환하기 Command 구현하기

위 주제를 프로그래밍 하기 위해서는 다음의 ArcObejcts 학습이 필요합니다.
처음 접하시는 분은 이 순서대로 ArcObjects를 공부하시면 도움이 될 듯 하네요.

 - IColor의 이해
 - ISymbol의 이해
 - Graphic Element의 이해
 - IFeatureLayer, IFeatureSelection, SelectionSet의 이해
 - IFeatureCursor, IFeature의 이해

▣ Marker Element 생성
private IElement GetMarkerElement(IPoint geometry, IMarkerSymbol symbol, string elementName)
{
    IMarkerElement markerElement = new MarkerElementClass();
    markerElement.Symbol = symbol;

    IElement element = (IElement)markerElement;
    element.Geometry = geometry;

    if (! string.IsNullOrEmpty(elementName))
    {
        IElementProperties elementProp = (IElementProperties)element;
        elementProp.Name = elementName;
    }

    return element;
}
▣ Line Element 생성
private IElement GetLineElement(IPolyline geometry, ILineSymbol symbol, string elementName)
{
    ILineElement lineElement = new LineElementClass();
    lineElement.Symbol = symbol;

    IElement element = (IElement)lineElement;
    element.Geometry = geometry;

    if (!string.IsNullOrEmpty(elementName))
    {
        IElementProperties elementProp = (IElementProperties)element;
        elementProp.Name = elementName;
    }

    return element;
}
▣ Polygon FillShape Element 생성
private IElement GetPolygonElement(IPolygon geometry, IFillSymbol symbol, string elementName)
{
    IFillShapeElement fillShapeElement = new PolygonElementClass();
    fillShapeElement.Symbol = symbol;

    IElement element = (IElement)fillShapeElement;
    element.Geometry = geometry;
   
    if (!string.IsNullOrEmpty(elementName))
    {
        IElementProperties elementProp = (IElementProperties)element;
        elementProp.Name = elementName;
    }

    return element;
}
▣ 선택된 피쳐의 Shape을 이용하여 Element 생성 후 지도에 추가
아래 코드에서는 Symbol을 생성하지 않고 FeatureLayer의 FeatureRenderer를 이용하여 각 피쳐별 Symbol을 얻어서 사용한다는 것을 눈여겨 보세요.
private void SelectedFeaturesToGraphics(IMap targetMap, IFeatureLayer featureLayer)
{
    IActiveView activeView = (IActiveView)targetMap;
    IGraphicsContainer graphicsCon = (IGraphicsContainer)activeView;

    IGeoFeatureLayer geoFeatureLayer = (IGeoFeatureLayer)featureLayer;
    IFeatureRenderer featureRenderer = geoFeatureLayer.Renderer;
    IFeatureSelection featureSelection = (IFeatureSelection)featureLayer;
    ISelectionSet selectionSet = featureSelection.SelectionSet;

    if (selectionSet.Count == 0)
        return;

    ICursor cursor = null;
    selectionSet.Search(null, true, out cursor);

    IFeatureCursor featureCursor = (IFeatureCursor)cursor;
    IFeature feature = featureCursor.NextFeature();         
    while (feature != null)
    {
        IGeometry geometry = feature.ShapeCopy;
        ISymbol symbol = featureRenderer.get_SymbolByFeature(feature);
        string elementName = string.Format("{0}_{1}", featureLayer.Name, feature.OID);
        IElement element = null;

        switch (geometry.GeometryType)
        {
            case esriGeometryType.esriGeometryPoint:
                element = this.GetMarkerElement((IPoint)geometry, (IMarkerSymbol)symbol, elementName);
                graphicsCon.AddElement(element, 0);
                break;
            case esriGeometryType.esriGeometryPolyline:
                element = this.GetLineElement((IPolyline)geometry, (ILineSymbol)symbol, elementName);
                graphicsCon.AddElement(element, 0);
                break;
            case esriGeometryType.esriGeometryPolygon:
                element = this.GetPolygonElement((IPolygon)geometry, (IFillSymbol)symbol, elementName);
                graphicsCon.AddElement(element, 0);
                break;
        }
        feature = featureCursor.NextFeature();
    }
    System.Runtime.InteropServices.Marshal.ReleaseComObject(cursor);

    activeView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
}
▣ Function 사용법
위 Function을 이용하여 IMap 및 Map에 추가된 Feature Layer중 선택된 피쳐를 Graphic Element로 변환하기 위한 사용법은 다음과 같습니다.
IMap targetMap = GetFocusMap();
IFeatureLayer featureLayer = (IFeatureLayer)targetMap.get_Layer(0);

SelectedFeaturesToGraphics(this.Application.FocusMap, featureLayer);