com.supermap.data

类 StandardMargin

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.data.StandardMargin
  • 所有已实现的接口:
    IDisposable


    public class StandardMargin
    extends com.supermap.data.InternalHandleDisposable
    中国标准图幅框设置类。
    示范代码:
    以下代码示范如何创建标准图幅图框,并将标准图幅图框以 CAD 数据集的形式保存到指定的数据源中。假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象
     public void standardMarginTest() {
            // 构造 StandardMargin 对象,并进行基本设置,使所有图幅元素均可见
            StandardMargin standardMargin = new StandardMargin();
            standardMargin.showAllElements();
            standardMargin.setAnnotation(new String[] {"此为自定义图幅"});
            standardMargin.setInformation(new String[] {"图示", "坐标系"});
            standardMargin.setKilometerGridType(StandardMargin.MarginKilometerGridType.CROSS);
            standardMargin.setLargeScaleCoordSysType(StandardMargin.MarginLargeScaleCoordSysType.NATIONAL);
            standardMargin.setLargeScaleSheetType(StandardMargin.MarginLargeScaleSheetType.SHEET40x50);
    
            // 得到标准图幅图框的偏移设置并对其进行设置
            StandardMargin.MarginOffset marginOffset = standardMargin.getOffset();
            marginOffset.setAnnotation(new Size2D(0, -5));
            marginOffset.setBasicScale(new Size2D(0, -15));
            marginOffset.setBottomLeftSheetName(new Size2D(0, -30));
            marginOffset.setBottomRightSheetName(new Size2D(90, -30));
            marginOffset.setInformation(new Size2D(8, 0));
            marginOffset.setPublisher(new Size2D(0, -5));
    
            // 得到标准图幅图框的文本样式并对其进行设置
            StandardMargin.MarginStyle marginStyle = standardMargin.getStyle();
            TextStyle textStyle = new TextStyle();
            textStyle.setFontName("黑体");
            textStyle.setFontHeight(5);
            textStyle.setFontWidth(2);
            textStyle.setForeColor(java.awt.Color.DARK_GRAY);
    
            // 此处的参数可以为不同的 TextStyle 对象
            marginStyle.setAnnotation(textStyle);
            marginStyle.setBasicScale(textStyle);
            marginStyle.setCornerMapName(textStyle);
            marginStyle.setCornerSheetName(textStyle);
    
            // 创建标准图幅图框,并将标准图幅图框以 CAD 数据集的形式保存到指定的数据源中
            DatasetVector marginCAD = StandardMargin.createStandardMarginDataset(datasource,datasource.getDatasets().getAvailableDatasetName("marginExample"), standardMargin);
            if (marginCAD != null) {
                System.out.println("创建成功");
                marginCAD.close();
            } else {
                System.out.println("创建失败");
            }
        }
     
    • 构造器详细资料

      • StandardMargin

        public StandardMargin()
        构造一个新的 StandardMargin 对象。
      • StandardMargin

        public StandardMargin(StandardMargin margin)
        根据指定的 StandardMargin 对象构造一个新的与其相同的新对象。
        参数:
        margin - 指定的 StandardMargin 对象。
      • StandardMargin

        public StandardMargin(StandardMargin.MarginScaleType scaleType)
        根据指定的参数来构造一个 StandardMargin 的新对象。

        若传入的比例尺是大比例尺(1:500,1:1000,1:2000),则认为左下角点坐标为(0,0)。

        参数:
        scaleType - 指定比例尺类型。
      • StandardMargin

        public StandardMargin(String sheetName)
        根据指定的参数来构造一个 StandardMargin 的新对象。

        当指定的名称不标准时抛出异常。

        在地图分幅中,1:100 万地图分幅是从赤道起向两极每纬差 4°为一行,至 88°,南北半球各分为 22 横列,依次编号 A、B、... V;经度由 180°自西向东每 6°一列,全球 60 列,以 1-60 表示。SuperMap 目前只支持纬度在 0 度到 北纬 76 度之间的分幅,即横列号只支持到 S。

        参数:
        sheetName - 指定的图幅名。
      • StandardMargin

        public StandardMargin(StandardMargin.MarginScaleType scaleType,
                              Point2D leftBottom)
        根据指定的参数来构造一个 StandardMargin 的新对象。

        若传入的比例尺类型不是大比例尺,则仍可构造,但是传入的左下角点坐标将无效。

        参数:
        scaleType - 图幅比例尺类型,要求为大比例尺类型(1:500,1:1000,1:2000)。
        leftBottom - 左下角点坐标,点的x和y值均不能为负。
      • StandardMargin

        public StandardMargin(StandardMargin.MarginScaleType scaleType,
                              StandardMargin.MarginLargeScaleSheetType largeScaleSheetType,
                              Rectangle2D bounds)
        根据指定的参数来构造一个 StandardMargin 的新对象。

        当分幅类型是自定义分幅时, 则构造的图幅框的大小可由给定的 bounds 决定, 但如果分幅类型为40*50 或者 50*50 时,则只取给定的图幅范围中的左下角点作为图幅的起始点。

        若传入的比例尺类型不是大比例尺,则仍可构造,但是传入的分幅类型和范围将无效。

        参数:
        scaleType - 图幅比例尺类型,要求为大比例尺类型(1:500,1:1000,1:2000)。
        largeScaleSheetType - 大比例尺下的图幅分幅类型。
        bounds - 给定的图幅范围。当图幅范围类型为 40*50分幅或者 50*50分幅时, 取该bounds中的左下角点作为图幅的起始点。
    • 方法详细资料

      • getOffset

        public StandardMargin.MarginOffset getOffset()
        返回图幅元素对象的偏移设置。
        返回:
        图幅元素对象的偏移设置。
      • getStyle

        public StandardMargin.MarginStyle getStyle()
        返回图幅元素的文本样式。
        返回:
        图幅元素的文本样式。
      • get

        public boolean get(StandardMargin.MarginElementType type)
        返回指定图幅元素是否可见。
        参数:
        type - 指定图幅元素。
        返回:
        指定图幅元素可见返回 true;否则返回 false。
      • set

        public void set(StandardMargin.MarginElementType type,
                        boolean value)
        设置指定图幅元素是否可见。
        参数:
        type - 指定图幅元素。
        value - 一个布尔值指定图幅元素是否可见。
      • getBounds

        public Rectangle2D getBounds()
        返回图幅经纬度范围。
        返回:
        图幅经纬度范围。
        默认值:
        默认值为 (102,32,108,36}。
      • getPrjCoordSys

        public PrjCoordSys getPrjCoordSys()
        返回图幅投影坐标系。
        返回:
        图幅投影坐标系。
        默认值:
        默认值为空的 PrjCoordSys 对象。
      • setPrjCoordSys

        public void setPrjCoordSys(PrjCoordSys prjCoordSys)
        设置图幅投影坐标系。
        参数:
        prjCoordSys - 图幅投影坐标系。
      • setLargeScaleSheetType

        public void setLargeScaleSheetType(StandardMargin.MarginLargeScaleSheetType type)
        设置大比例尺(1:500 - 1:2000)图幅分幅类型。
        参数:
        type - 大比例尺(1:500 - 1:2000)图幅分幅类型。
      • setLargeScaleCoordSysType

        public void setLargeScaleCoordSysType(StandardMargin.MarginLargeScaleCoordSysType type)
        设置大比例尺图幅的坐标系类型。
        参数:
        type - 大比例尺图幅的坐标系类型。
      • getMapName

        public String getMapName()
        返回地图名。
        返回:
        地图名。
        默认值:
        默认值为 "Untitled"。
      • setMapName

        public void setMapName(String mapName)
        设置地图名。
        参数:
        mapName - 地图名。
      • getSheetName

        public String getSheetName()
        返回图幅名(即图幅编号)。
        返回:
        图幅名(即图幅编号)。
        默认值:
        默认值为 "I"。
      • getPublisher

        public String getPublisher()
        返回地图出版单位的名称。
        返回:
        地图出版单位的名称。
        默认值:
        默认值为“国家测绘局”。
      • setPublisher

        public void setPublisher(String publisher)
        设置地图出版单位的名称。
        参数:
        publisher - 地图出版单位的名称。
      • getSafeInfo

        public String getSafeInfo()
        返回出版密级文本。
        返回:
        出版密级文本。
        默认值:
        默认值为“秘密 ★ 长期”。
      • setSafeInfo

        public void setSafeInfo(String safeInfo)
        设置出版密级文本。
        参数:
        safeInfo - 出版密级文本。
      • getInformation

        public String[] getInformation()
        返回信息,通常放置在图幅的右下角,包括图示,坐标系,高程基准,航摄,出版等信息。
        返回:
        信息。
        默认值:
        默认值为空的 System.String[] 对象。
      • setInformation

        public void setInformation(String[] information)
        设置信息,通常放置在图幅的右下角,包括图示,坐标系,高程基准,航摄,出版等信息。
        参数:
        information - 信息。
      • getAnnotation

        public String[] getAnnotation()
        返回附注文本数组。
        返回:
        附注文本数组。
        默认值:
        默认值为空的 System.String[] 对象。
      • setAnnotation

        public void setAnnotation(String[] annotation)
        设置附注文本数组。
        参数:
        value - 附注文本数组。
      • getNeighborMapNames

        public String[] getNeighborMapNames()
        返回邻接图幅名。
        返回:
        邻接图幅名。
        默认值:
        默认值为空的 System.String[] 对象。
      • setNeighborMapNames

        public void setNeighborMapNames(String[] neighborMapName)
        设置邻接图幅名。
        参数:
        neighborMapName - 邻接图幅名。
      • getNeighborSheetNames

        public String[] getNeighborSheetNames()
        返回邻接图幅号。
        返回:
        邻接图幅号。
        默认值:
        默认值为空的 System.String[] 对象
      • getInformationRowSpace

        public double getInformationRowSpace()
        返回地图显示信息的行间距。
        返回:
        地图显示信息的行间距。
        默认值:
        默认值为 0。
      • setInformationRowSpace

        public void setInformationRowSpace(double value)
        设置地图显示信息的行间距。
        参数:
        value - 地图显示信息的行间距。
      • getAnnotationRowSpace

        public double getAnnotationRowSpace()
        返回地图显示信息的行间距。
        返回:
        地图显示信息的行间距。
        默认值:
        默认值为 2。
      • setAnnotationRowSpace

        public void setAnnotationRowSpace(double value)
        设置地图显示信息的行间距。
        参数:
        value - 地图显示信息的行间距。
      • getContourInterval

        public double getContourInterval()
        返回等高距。
        返回:
        等高距。
        默认值:
        默认值为 0。
      • setContourInterval

        public void setContourInterval(double value)
        设置等高距。
        参数:
        value - 等高距。
      • getKilometerGridHorizontalSpace

        public double getKilometerGridHorizontalSpace()
        返回公里网水平方向网格长度。
        返回:
        公里网水平方向网格长度。
      • setKilometerGridHorizontalSpace

        public void setKilometerGridHorizontalSpace(double value)
        设置公里网水平方向网格长度。
        参数:
        value - 公里网水平方向网格长度。
        默认值:
        默认值为 0。
      • getKilometerGridVerticalSpace

        public double getKilometerGridVerticalSpace()
        返回公里网垂直方向网格长度。
        返回:
        公里网垂直方向网格长度。
      • setKilometerGridVerticalSpace

        public void setKilometerGridVerticalSpace(double value)
        设置公里网垂直方向网格长度。
        参数:
        value - 公里网垂直方向网格长度。
        默认值:
        默认值为 0。
      • getSegmentCount

        public int getSegmentCount()
        返回为保证投影转换后的精度而在边框上插值的个数。

        一般中小比例尺地形图,图框的弧度比较大,需要多一些插值点,形成弧线的效果。

        返回:
        为保证投影转换后的精度而在边框上插值的个数。
      • setSegmentCount

        public void setSegmentCount(int value)
        设置为保证投影转换后的精度而在边框上插值的个数。

        一般中小比例尺地形图,图框的弧度比较大,需要多一些插值点,形成弧线的效果。

        参数:
        value - 为保证投影转换后的精度而在边框上插值的个数。
        默认值:
        默认值为 72。
      • getZoneNumber

        public int getZoneNumber()
        返回大比例尺地图的国家坐标系的条带号,要求用户输入。
        返回:
        大比例尺地图的国家坐标系的条带号。
        默认值:
        默认值为 0。
      • setZoneNumber

        public void setZoneNumber(int value)
        设置大比例尺地图的国家坐标系的条带号,要求用户输入。
        参数:
        value - 大比例尺地图的国家坐标系的条带号。
      • getMeridianAngle

        public double getMeridianAngle()
        返回子午线收敛角。

        子午线收敛角指的是格网中相邻子午线间的夹角。

        返回:
        子午线收敛角。
        默认值:
        默认值为 1.4834。
      • setMeridianAngle

        public void setMeridianAngle(double value)
        设置子午线收敛角。

        子午线收敛角指的是格网中相邻子午线间的夹角。

        参数:
        value - 子午线收敛角。
      • getMagnetAngle

        public double getMagnetAngle()
        返回磁偏角。

        磁偏角指的是地球磁场磁极北方向与地理北方向的夹角。

        返回:
        磁偏角。
        默认值:
        默认值-1.67。
      • setMagnetAngle

        public void setMagnetAngle(double value)
        设置磁偏角。

        磁偏角指的是地球磁场磁极北方向与地理北方向的夹角。

        参数:
        value - 磁偏角。
      • getInsideSpace

        public double getInsideSpace()
        返回图幅外框的外边沿与内框的距离。
        返回:
        图幅外框的外边沿与内框的距离。
        默认值:
        默认值 10。
      • setInsideSpace

        public void setInsideSpace(double value)
        设置图幅外框的外边沿与内框的距离。
        参数:
        value - 图幅外框的外边沿与内框的距离。
      • getOuterBoxLineWidth

        public double getOuterBoxLineWidth()
        返回图幅外框的线宽。
        返回:
        图幅外框的线宽。
        默认值:
        默认值 1。
      • setOuterBoxLineWidth

        public void setOuterBoxLineWidth(double value)
        设置图幅外框的线宽。
        参数:
        value - 图幅外框的线宽。
      • getCrossLength

        public double getCrossLength()
        返回十字丝公里网十字的长度。

        只有大比例尺地形图图框才有十字丝公里网。

        返回:
        十字丝公里网十字的长度。
        默认值:
        默认值为 10。
      • setCrossLength

        public void setCrossLength(double value)
        设置十字丝公里网十字的长度。

        只有大比例尺地形图图框才有十字丝公里网。

        参数:
        value - 十字丝公里网十字的长度。
      • isCreateLonLatText

        public boolean isCreateLonLatText()
      • setIsCreateLonLatText

        public void setIsCreateLonLatText(boolean bValue)
      • dispose

        public void dispose()
        释放该对象所占用的资源。当调用该方法之后,此对象不再可用。
      • showAllElements

        public void showAllElements()
        使所有的标准图幅元素可见。
      • hideAllElements

        public void hideAllElements()
        使所有的标准图幅元素不可见。
      • computeSheetName

        public static String computeSheetName(Point2D bottomLeft,
                                              StandardMargin.MarginScaleType scaleType)
        根据左下脚坐标和比例尺计算图幅名称。
        参数:
        bottomLeft - 左下脚坐标。
        scaleType - 比例尺。
        返回:
        图幅名称。
      • createStandardMarginDataset

        public static DatasetVector createStandardMarginDataset(Datasource datasource,
                                                                String datasetName,
                                                                StandardMargin standardMargin)
        创建标准图幅图框,并将标准图幅图框以CAD数据集的形式保存到指定的数据源中。
        1. 当指定的标准图幅图框类对象比例尺大于1:2000时,生成的标准图幅图框不可以采用平面投影。
        2. 当指定的标准图幅图框对象比例尺小于或等于1:2000时,生成的标准图幅图框不可以采用平面投影或经纬投影。
        参数:
        datasource - 指定的数据源。
        datasetName - 指定的数据集名称。
        standardMargin - 指定的标准图幅图框类对象。
        返回:
        CAD 数据集。

Copyright © 2021–2024 SuperMap. All rights reserved.