com.supermap.data
类 StandardMargin

java.lang.Object
  继承者 com.supermap.data.StandardMargin

public class StandardMargin
extends java.lang.Object

中国标准图幅框设置类。

示例:
以下代码示范如何创建标准图幅图框,并将标准图幅图框以 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("创建失败");
        }
    }
 

嵌套类摘要
static class StandardMargin.MarginElementType
          该类定义了标准图幅元素类型常量,包括了标准图幅边框中包含的元素。
static class StandardMargin.MarginKilometerGridType
          该类定义了公里网网格类型常量,用于标示网格线类型是十字丝类型还是实线类型。
static class StandardMargin.MarginLargeScaleCoordSysType
          该类定义了大比例尺图幅的坐标系类型常量。
static class StandardMargin.MarginLargeScaleSheetType
          该类定义了大比例尺图幅范围类型常量。
 class StandardMargin.MarginOffset
          标准图幅偏移设置类。
static class StandardMargin.MarginScaleType
          该类定义了标准比例尺类型常量,包括了边框处比例尺的类型。
static class StandardMargin.MarginStandardType
          该类定义了图幅标准类型常量。
 class StandardMargin.MarginStyle
          中国标准图幅元素样式类。
 
构造方法摘要
StandardMargin()
          构造一个新的 StandardMargin 对象。
StandardMargin(StandardMargin.MarginScaleType scaleType)
          根据指定的参数来构造一个 StandardMargin 的新对象。
StandardMargin(StandardMargin.MarginScaleType scaleType, Point2D leftBottom)
          根据指定的参数来构造一个 StandardMargin 的新对象。
StandardMargin(StandardMargin.MarginScaleType scaleType, StandardMargin.MarginLargeScaleSheetType largeScaleSheetType, Rectangle2D bounds)
          根据指定的参数来构造一个 StandardMargin 的新对象。
StandardMargin(StandardMargin margin)
          根据指定的 StandardMargin 对象构造一个新的与其相同的新对象。
StandardMargin(java.lang.String sheetName)
          根据指定的参数来构造一个 StandardMargin 的新对象。
 
方法摘要
static java.lang.String computeSheetName(Point2D bottomLeft, StandardMargin.MarginScaleType scaleType)
          根据左下脚坐标和比例尺计算图幅名称。
static DatasetVector createStandardMarginDataset(Datasource datasource, java.lang.String datasetName, StandardMargin standardMargin)
          创建标准图幅图框,并将标准图幅图框以CAD数据集的形式保存到指定的数据源中。
 void dispose()
          释放该对象所占用的资源。
 boolean get(StandardMargin.MarginElementType type)
          返回指定图幅元素是否可见。
 java.lang.String[] getAnnotation()
          返回附注文本数组。
 double getAnnotationRowSpace()
          返回地图显示信息的行间距。
 Rectangle2D getBounds()
          返回图幅经纬度范围。
 double getContourInterval()
          返回等高距。
 double getCrossLength()
          返回十字丝公里网十字的长度。
 java.lang.String[] getInformation()
          返回信息,通常放置在图幅的右下角,包括图示,坐标系,高程基准,航摄,出版等信息。
 double getInformationRowSpace()
          返回地图显示信息的行间距。
 double getInsideSpace()
          返回图幅外框的外边沿与内框的距离。
 double getKilometerGridHorizontalSpace()
          返回公里网水平方向网格长度。
 StandardMargin.MarginKilometerGridType getKilometerGridType()
          返回公里网网格类型。
 double getKilometerGridVerticalSpace()
          返回公里网垂直方向网格长度。
 StandardMargin.MarginLargeScaleCoordSysType getLargeScaleCoordSysType()
          返回大比例尺图幅的坐标系类型。
 StandardMargin.MarginLargeScaleSheetType getLargeScaleSheetType()
          返回大比例尺(1:500 - 1:2000)图幅分幅类型。
 double getMagnetAngle()
          返回磁偏角。
 java.lang.String getMapName()
          返回地图名。
 double getMeridianAngle()
          返回子午线收敛角。
 java.lang.String[] getNeighborMapNames()
          返回邻接图幅名。
 java.lang.String[] getNeighborSheetNames()
          返回邻接图幅号。
 StandardMargin.MarginOffset getOffset()
          返回图幅元素对象的偏移设置。
 double getOuterBoxLineWidth()
          返回图幅外框的线宽。
 PrjCoordSys getPrjCoordSys()
          返回图幅投影坐标系。
 java.lang.String getPublisher()
          返回地图出版单位的名称。
 java.lang.String getSafeInfo()
          返回出版密级文本。
 StandardMargin.MarginScaleType getScaleType()
          返回图幅比例尺类型。
 int getSegmentCount()
          返回为保证投影转换后的精度而在边框上插值的个数。
 java.lang.String getSheetName()
          返回图幅名(即图幅编号)。
 StandardMargin.MarginStandardType getSheetNameType()
          返回图幅编号类型。
 StandardMargin.MarginStyle getStyle()
          返回图幅元素的文本样式。
 int getZoneNumber()
          返回大比例尺地图的国家坐标系的条带号,要求用户输入。
 void hideAllElements()
          使所有的标准图幅元素不可见。
 void set(StandardMargin.MarginElementType type, boolean value)
          设置指定图幅元素是否可见。
 void setAnnotation(java.lang.String[] value)
          设置附注文本数组。
 void setAnnotationRowSpace(double value)
          设置地图显示信息的行间距。
 void setContourInterval(double value)
          设置等高距。
 void setCrossLength(double value)
          设置十字丝公里网十字的长度。
 void setInformation(java.lang.String[] information)
          设置信息,通常放置在图幅的右下角,包括图示,坐标系,高程基准,航摄,出版等信息。
 void setInformationRowSpace(double value)
          设置地图显示信息的行间距。
 void setInsideSpace(double value)
          设置图幅外框的外边沿与内框的距离。
 void setKilometerGridHorizontalSpace(double value)
          设置公里网水平方向网格长度。
 void setKilometerGridType(StandardMargin.MarginKilometerGridType type)
          设置公里网网格类型。
 void setKilometerGridVerticalSpace(double value)
          设置公里网垂直方向网格长度。
 void setLargeScaleCoordSysType(StandardMargin.MarginLargeScaleCoordSysType type)
          设置大比例尺图幅的坐标系类型。
 void setLargeScaleSheetType(StandardMargin.MarginLargeScaleSheetType type)
          设置大比例尺(1:500 - 1:2000)图幅分幅类型。
 void setMagnetAngle(double value)
          设置磁偏角。
 void setMapName(java.lang.String mapName)
          设置地图名。
 void setMeridianAngle(double value)
          设置子午线收敛角。
 void setNeighborMapNames(java.lang.String[] neighborMapName)
          设置邻接图幅名。
 void setOuterBoxLineWidth(double value)
          设置图幅外框的线宽。
 void setPrjCoordSys(PrjCoordSys prjCoordSys)
          设置图幅投影坐标系。
 void setPublisher(java.lang.String publisher)
          设置地图出版单位的名称。
 void setSafeInfo(java.lang.String safeInfo)
          设置出版密级文本。
 void setSegmentCount(int value)
          设置为保证投影转换后的精度而在边框上插值的个数。
 void setZoneNumber(int value)
          设置大比例尺地图的国家坐标系的条带号,要求用户输入。
 void showAllElements()
          使所有的标准图幅元素可见。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

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(java.lang.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 - 图幅投影坐标系。

getScaleType

public StandardMargin.MarginScaleType getScaleType()
返回图幅比例尺类型。

返回:
图幅比例尺类型。
默认值:
默认值为 MarginScaleType.SCALE_1000000

getLargeScaleSheetType

public StandardMargin.MarginLargeScaleSheetType getLargeScaleSheetType()
返回大比例尺(1:500 - 1:2000)图幅分幅类型。

返回:
大比例尺(1:500 - 1:2000)图幅分幅类型。
默认值:
默认值为 MarginLargeScaleSheetType.SHEET40x50

setLargeScaleSheetType

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

参数:
type - 大比例尺(1:500 - 1:2000)图幅分幅类型。

getLargeScaleCoordSysType

public StandardMargin.MarginLargeScaleCoordSysType getLargeScaleCoordSysType()
返回大比例尺图幅的坐标系类型。

返回:
大比例尺图幅的坐标系类型。
默认值:
默认值为 MarginLargeScaleCoordSysType.USERDEFINE

setLargeScaleCoordSysType

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

参数:
type - 大比例尺图幅的坐标系类型。

getKilometerGridType

public StandardMargin.MarginKilometerGridType getKilometerGridType()
返回公里网网格类型。

返回:
公里网网格类型。
默认值:
默认值为 MarginKilometerGridType.CROSS

setKilometerGridType

public void setKilometerGridType(StandardMargin.MarginKilometerGridType type)
设置公里网网格类型。

参数:
type - 公里网网格类型。

getMapName

public java.lang.String getMapName()
返回地图名。

返回:
地图名。
默认值:
默认值为 "Untitled"。

setMapName

public void setMapName(java.lang.String mapName)
设置地图名。

参数:
mapName - 地图名。

getSheetName

public java.lang.String getSheetName()
返回图幅名(即图幅编号)。

返回:
图幅名(即图幅编号)。
默认值:
默认值为 "I"。

getPublisher

public java.lang.String getPublisher()
返回地图出版单位的名称。

返回:
地图出版单位的名称。
默认值:
默认值为“国家测绘局”。

setPublisher

public void setPublisher(java.lang.String publisher)
设置地图出版单位的名称。

参数:
publisher - 地图出版单位的名称。

getSafeInfo

public java.lang.String getSafeInfo()
返回出版密级文本。

返回:
出版密级文本。
默认值:
默认值为“秘密 ★ 长期”。

setSafeInfo

public void setSafeInfo(java.lang.String safeInfo)
设置出版密级文本。

参数:
safeInfo - 出版密级文本。

getInformation

public java.lang.String[] getInformation()
返回信息,通常放置在图幅的右下角,包括图示,坐标系,高程基准,航摄,出版等信息。

返回:
信息。
默认值:
默认值为空的 System.String[] 对象。

setInformation

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

参数:
information - 信息。

getAnnotation

public java.lang.String[] getAnnotation()
返回附注文本数组。

返回:
附注文本数组。
默认值:
默认值为空的 System.String[] 对象。

setAnnotation

public void setAnnotation(java.lang.String[] value)
设置附注文本数组。

参数:
value - 附注文本数组。

getNeighborMapNames

public java.lang.String[] getNeighborMapNames()
返回邻接图幅名。

返回:
邻接图幅名。
默认值:
默认值为空的 System.String[] 对象。

setNeighborMapNames

public void setNeighborMapNames(java.lang.String[] neighborMapName)
设置邻接图幅名。

参数:
neighborMapName - 邻接图幅名。

getNeighborSheetNames

public java.lang.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 - 十字丝公里网十字的长度。

showAllElements

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


hideAllElements

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


computeSheetName

public static java.lang.String computeSheetName(Point2D bottomLeft,
                                                StandardMargin.MarginScaleType scaleType)
根据左下脚坐标和比例尺计算图幅名称。

参数:
bottomLeft - 左下脚坐标。
scaleType - 比例尺。
返回:
图幅名称。

createStandardMarginDataset

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

参数:
datasource - 指定的数据源。
datasetName - 指定的数据集名称。
standardMargin - 指定的标准图幅图框类对象。
返回:
CAD 数据集。

dispose

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


getSheetNameType

public StandardMargin.MarginStandardType getSheetNameType()
返回图幅编号类型。

返回:
图幅编号类型。