public class StandardMargin
extends com.supermap.data.InternalHandleDisposable
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(String sheetName)
根据指定的参数来构造一个 StandardMargin 的新对象。
|
限定符和类型 | 方法和说明 |
---|---|
static String |
computeSheetName(Point2D bottomLeft,
StandardMargin.MarginScaleType scaleType)
根据左下脚坐标和比例尺计算图幅名称。
|
static DatasetVector |
createStandardMarginDataset(Datasource datasource,
String datasetName,
StandardMargin standardMargin)
创建标准图幅图框,并将标准图幅图框以CAD数据集的形式保存到指定的数据源中。
|
void |
dispose()
释放该对象所占用的资源。
|
boolean |
get(StandardMargin.MarginElementType type)
返回指定图幅元素是否可见。
|
String[] |
getAnnotation()
返回附注文本数组。
|
double |
getAnnotationRowSpace()
返回地图显示信息的行间距。
|
Rectangle2D |
getBounds()
返回图幅经纬度范围。
|
double |
getContourInterval()
返回等高距。
|
double |
getCrossLength()
返回十字丝公里网十字的长度。
|
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()
返回磁偏角。
|
String |
getMapName()
返回地图名。
|
double |
getMeridianAngle()
返回子午线收敛角。
|
String[] |
getNeighborMapNames()
返回邻接图幅名。
|
String[] |
getNeighborSheetNames()
返回邻接图幅号。
|
StandardMargin.MarginOffset |
getOffset()
返回图幅元素对象的偏移设置。
|
double |
getOuterBoxLineWidth()
返回图幅外框的线宽。
|
PrjCoordSys |
getPrjCoordSys()
返回图幅投影坐标系。
|
String |
getPublisher()
返回地图出版单位的名称。
|
String |
getSafeInfo()
返回出版密级文本。
|
StandardMargin.MarginScaleType |
getScaleType()
返回图幅比例尺类型。
|
int |
getSegmentCount()
返回为保证投影转换后的精度而在边框上插值的个数。
|
String |
getSheetName()
返回图幅名(即图幅编号)。
|
StandardMargin.MarginStandardType |
getSheetNameType()
返回图幅编号类型。
|
StandardMargin.MarginStyle |
getStyle()
返回图幅元素的文本样式。
|
int |
getZoneNumber()
返回大比例尺地图的国家坐标系的条带号,要求用户输入。
|
void |
hideAllElements()
使所有的标准图幅元素不可见。
|
boolean |
isCreateLonLatText() |
void |
set(StandardMargin.MarginElementType type,
boolean value)
设置指定图幅元素是否可见。
|
void |
setAnnotation(String[] annotation)
设置附注文本数组。
|
void |
setAnnotationRowSpace(double value)
设置地图显示信息的行间距。
|
void |
setContourInterval(double value)
设置等高距。
|
void |
setCrossLength(double value)
设置十字丝公里网十字的长度。
|
void |
setInformation(String[] information)
设置信息,通常放置在图幅的右下角,包括图示,坐标系,高程基准,航摄,出版等信息。
|
void |
setInformationRowSpace(double value)
设置地图显示信息的行间距。
|
void |
setInsideSpace(double value)
设置图幅外框的外边沿与内框的距离。
|
void |
setIsCreateLonLatText(boolean bValue) |
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(String mapName)
设置地图名。
|
void |
setMeridianAngle(double value)
设置子午线收敛角。
|
void |
setNeighborMapNames(String[] neighborMapName)
设置邻接图幅名。
|
void |
setOuterBoxLineWidth(double value)
设置图幅外框的线宽。
|
void |
setPrjCoordSys(PrjCoordSys prjCoordSys)
设置图幅投影坐标系。
|
void |
setPublisher(String publisher)
设置地图出版单位的名称。
|
void |
setSafeInfo(String safeInfo)
设置出版密级文本。
|
void |
setSegmentCount(int value)
设置为保证投影转换后的精度而在边框上插值的个数。
|
void |
setZoneNumber(int value)
设置大比例尺地图的国家坐标系的条带号,要求用户输入。
|
void |
showAllElements()
使所有的标准图幅元素可见。
|
public StandardMargin()
public StandardMargin(StandardMargin margin)
margin
- 指定的 StandardMargin 对象。public StandardMargin(StandardMargin.MarginScaleType scaleType)
若传入的比例尺是大比例尺(1:500,1:1000,1:2000),则认为左下角点坐标为(0,0)。
scaleType
- 指定比例尺类型。public StandardMargin(String sheetName)
当指定的名称不标准时抛出异常。
在地图分幅中,1:100 万地图分幅是从赤道起向两极每纬差 4°为一行,至 88°,南北半球各分为 22 横列,依次编号 A、B、... V;经度由 180°自西向东每 6°一列,全球 60 列,以 1-60 表示。SuperMap 目前只支持纬度在 0 度到 北纬 76 度之间的分幅,即横列号只支持到 S。
sheetName
- 指定的图幅名。public StandardMargin(StandardMargin.MarginScaleType scaleType, Point2D leftBottom)
若传入的比例尺类型不是大比例尺,则仍可构造,但是传入的左下角点坐标将无效。
scaleType
- 图幅比例尺类型,要求为大比例尺类型(1:500,1:1000,1:2000)。leftBottom
- 左下角点坐标,点的x和y值均不能为负。public StandardMargin(StandardMargin.MarginScaleType scaleType, StandardMargin.MarginLargeScaleSheetType largeScaleSheetType, Rectangle2D bounds)
当分幅类型是自定义分幅时, 则构造的图幅框的大小可由给定的 bounds 决定, 但如果分幅类型为40*50 或者 50*50 时,则只取给定的图幅范围中的左下角点作为图幅的起始点。
若传入的比例尺类型不是大比例尺,则仍可构造,但是传入的分幅类型和范围将无效。
scaleType
- 图幅比例尺类型,要求为大比例尺类型(1:500,1:1000,1:2000)。largeScaleSheetType
- 大比例尺下的图幅分幅类型。bounds
- 给定的图幅范围。当图幅范围类型为 40*50分幅或者 50*50分幅时, 取该bounds中的左下角点作为图幅的起始点。public StandardMargin.MarginOffset getOffset()
public StandardMargin.MarginStyle getStyle()
public boolean get(StandardMargin.MarginElementType type)
type
- 指定图幅元素。public void set(StandardMargin.MarginElementType type, boolean value)
type
- 指定图幅元素。value
- 一个布尔值指定图幅元素是否可见。public Rectangle2D getBounds()
public PrjCoordSys getPrjCoordSys()
PrjCoordSys
对象。public void setPrjCoordSys(PrjCoordSys prjCoordSys)
prjCoordSys
- 图幅投影坐标系。public StandardMargin.MarginScaleType getScaleType()
MarginScaleType.SCALE_1000000
。public StandardMargin.MarginStandardType getSheetNameType()
public StandardMargin.MarginLargeScaleSheetType getLargeScaleSheetType()
MarginLargeScaleSheetType.SHEET40x50
。public void setLargeScaleSheetType(StandardMargin.MarginLargeScaleSheetType type)
type
- 大比例尺(1:500 - 1:2000)图幅分幅类型。public StandardMargin.MarginLargeScaleCoordSysType getLargeScaleCoordSysType()
MarginLargeScaleCoordSysType.USERDEFINE
。public void setLargeScaleCoordSysType(StandardMargin.MarginLargeScaleCoordSysType type)
type
- 大比例尺图幅的坐标系类型。public StandardMargin.MarginKilometerGridType getKilometerGridType()
MarginKilometerGridType.CROSS
。public void setKilometerGridType(StandardMargin.MarginKilometerGridType type)
type
- 公里网网格类型。public String getMapName()
public void setMapName(String mapName)
mapName
- 地图名。public String getSheetName()
public String getPublisher()
public void setPublisher(String publisher)
publisher
- 地图出版单位的名称。public String getSafeInfo()
public void setSafeInfo(String safeInfo)
safeInfo
- 出版密级文本。public String[] getInformation()
public void setInformation(String[] information)
information
- 信息。public String[] getAnnotation()
public void setAnnotation(String[] annotation)
value
- 附注文本数组。public String[] getNeighborMapNames()
public void setNeighborMapNames(String[] neighborMapName)
neighborMapName
- 邻接图幅名。public String[] getNeighborSheetNames()
public double getInformationRowSpace()
public void setInformationRowSpace(double value)
value
- 地图显示信息的行间距。public double getAnnotationRowSpace()
public void setAnnotationRowSpace(double value)
value
- 地图显示信息的行间距。public double getContourInterval()
public void setContourInterval(double value)
value
- 等高距。public double getKilometerGridHorizontalSpace()
public void setKilometerGridHorizontalSpace(double value)
value
- 公里网水平方向网格长度。public double getKilometerGridVerticalSpace()
public void setKilometerGridVerticalSpace(double value)
value
- 公里网垂直方向网格长度。public int getSegmentCount()
一般中小比例尺地形图,图框的弧度比较大,需要多一些插值点,形成弧线的效果。
public void setSegmentCount(int value)
一般中小比例尺地形图,图框的弧度比较大,需要多一些插值点,形成弧线的效果。
value
- 为保证投影转换后的精度而在边框上插值的个数。public int getZoneNumber()
public void setZoneNumber(int value)
value
- 大比例尺地图的国家坐标系的条带号。public double getMeridianAngle()
子午线收敛角指的是格网中相邻子午线间的夹角。
public void setMeridianAngle(double value)
子午线收敛角指的是格网中相邻子午线间的夹角。
value
- 子午线收敛角。public double getMagnetAngle()
磁偏角指的是地球磁场磁极北方向与地理北方向的夹角。
public void setMagnetAngle(double value)
磁偏角指的是地球磁场磁极北方向与地理北方向的夹角。
value
- 磁偏角。public double getInsideSpace()
public void setInsideSpace(double value)
value
- 图幅外框的外边沿与内框的距离。public double getOuterBoxLineWidth()
public void setOuterBoxLineWidth(double value)
value
- 图幅外框的线宽。public double getCrossLength()
只有大比例尺地形图图框才有十字丝公里网。
public void setCrossLength(double value)
只有大比例尺地形图图框才有十字丝公里网。
value
- 十字丝公里网十字的长度。public boolean isCreateLonLatText()
public void setIsCreateLonLatText(boolean bValue)
public void dispose()
public void showAllElements()
public void hideAllElements()
public static String computeSheetName(Point2D bottomLeft, StandardMargin.MarginScaleType scaleType)
bottomLeft
- 左下脚坐标。scaleType
- 比例尺。public static DatasetVector createStandardMarginDataset(Datasource datasource, String datasetName, StandardMargin standardMargin)
datasource
- 指定的数据源。datasetName
- 指定的数据集名称。standardMargin
- 指定的标准图幅图框类对象。Copyright © 2021–2024 SuperMap. All rights reserved.