com.supermap.layout

类 MapLayout

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


    public class MapLayout
    extends com.supermap.data.InternalHandleDisposable
    布局对象类。

    布局就是地图、地图比例尺、指北针、文本等各种不同地图内容的混合排版与布置,主要用于电子地图和打印地图。布局窗口,即 MapLayoutControl 类,用于布局的显示窗口,提供布局中各类元素的可视化编辑与操作,同时布局还提供了诸如格网、刻度尺、标尺线等辅助要素,帮助布局中各个元素的位置与大小的定位;布局还提供了标准图幅图框,制作出标准的、科学的地图版面。

    另外,布局还可以输出成各种格式(BMP、JPG、PNG、EMP、PDF)的图片以及进行打印,并且提供了方便灵活的页面设置。

    布局可以保存在与之关联的工作空间中,通过工作空间中的布局集合,即Workspace 类的 getLayouts() 方法获取和管理工作空间中存储的布局对象。

    如下图所示,为一个布局窗口,窗口中显示了一个布局对象。

    下面主要介绍布局的基本构成以及布局中的坐标关系。

    如下图所示,为布局窗口中显示的布局对象,布局窗口主要是布局对象显示的容器,提供了水平和垂直滚动条。布局对象包含了用于度量和定位的刻度尺、用来进行布局排版的纸面、可以添加到布局中的布局元素(地图对象、比例尺、指北针以及其他几何对象)。

    布局的坐标单位为逻辑单位,即0.1毫米,也就是说在布局中屏幕坐标的一个单位为0.1毫米。当向布局中添加布局元素时,布局元素放置的位置坐标以及元素的尺寸单位均使用逻辑单位。例如:若将Element1元素放置到布局中(1200,1200)位置处时,实际是放置在距纸面原点(下图中绿色小圆点所示)(120mm,120mm)的位置处。

    布局中的纸面对象,如下图所示,纸面对象的大小可以设置,下图的纸面大小为B5型号纸张的大小(182*257mm),下图中绿色的小圆点表示纸面的原点位置,即纸面尺寸量算的起始点,纸面的原点始终位于布局中(0,0)坐标点的位置;纸面原点到纸面边缘的垂直和水平距离(下图中橘黄色双箭头所示)分别为纸面的垂直和水平页边距。

    • 构造器详细资料

      • MapLayout

        public MapLayout()
        构造一个新的布局类对象。
      • MapLayout

        public MapLayout(Workspace workspace)
        根据工作空间对象构造一个布局类对象。
        参数:
        workspace - 工作空间对象。
    • 方法详细资料

      • getName

        public String getName()
        返回布局对象的名称。
        返回:
        布局对象的名称。
        默认值:
        默认值为 "UntitledMapLayout"。
      • setName

        public void setName(String name)
        设置布局对象的名称。
        参数:
        name - 指定的布局对象名称。
      • getPaper

        public Paper getPaper()
        返回页面纸张对象。

        下图为一个布局窗口,窗口中显示了一个布局对象。黑色双箭头指示的就是布局的页面纸张对象。

        返回:
        页面纸张对象。
        默认值:
        默认值为空的 Paper 对象。
      • getPrinter

        @Deprecated
        public Printer getPrinter()
        已过时。 11.2.0 已废弃
        返回打印机对象。
        返回:
        打印机对象。
        默认值:
        默认值为空的 Printer 对象。
      • getRuler

        public Ruler getRuler()
        返回布局中的标尺。
        返回:
        布局中的标尺。
      • getRulerLines

        @Deprecated
        public RulerLines getRulerLines()
        已过时。 11.2.0 已废弃
        返回标尺线集合对象。

        所谓布局中的标尺线,就是如下图所示的一系列水平和垂直的线条,标尺线是有一种辅助布局排版的工具,在应用中可以使用任意多个标尺线,将它们放置在布局中需要的位置,进而帮助布局中元素的排列和定位。

        下图为一个布局窗口,窗口中显示了一个布局对象。

        返回:
        标尺线集合对象。
        默认值:
        默认值为空的 RulerLines 对象。
      • getRulerSetting

        public RulerSetting getRulerSetting()
        返回刻度尺设置对象。

        如下图所示,为一个布局窗口,窗口中显示了一个布局对象,图中黑色双箭头所指示的就是布局的刻度尺,通过刻度尺设置对象可以设置刻度尺的单位以及控制刻度尺是否显示等。

        返回:
        刻度尺设置对象。
        默认值:
        默认值为空的 RulerSetting 对象。
      • getBounds

        public Rectangle2D getBounds()
        返回布局空间范围。
        返回:
        布局空间范围。
        默认值:
        默认值为{Left = -200,Bottom = -200,Right = 1900,Top = 2770}。
      • getViewBounds

        public Rectangle2D getViewBounds()
        返回布局可见空间范围。
        返回:
        布局可见空间范围。
        默认值:
        默认值为{Left = -855.326409495549,Bottom = -420.326409495549,Right = 2555.32640949555,Top = 2990.32640949555}。
      • setViewBounds

        public void setViewBounds(Rectangle2D rectangle2D)
        设置布局可见空间范围。
        参数:
        rectangle2D - 布局可见空间范围。
      • getCenter

        public Point2D getCenter()
        返回布局中心点。
        返回:
        布局中心点。
        默认值:
        默认值为{X = 850,Y = 1285}。
      • setCenter

        public void setCenter(Point2D point2D)
        设置布局中心点。
        参数:
        point2D - 布局中心点。
      • getZoomRatio

        public double getZoomRatio()
        返回布局当前的缩放比例。
        返回:
        布局当前的缩放比例。
        默认值:
        默认值为 0.0000197616126815093。
      • setZoomRatio

        public void setZoomRatio(double value)
        设置布局当前的缩放比例。
        参数:
        value - 布局当前的缩放比例。
      • getMaxZoomRatio

        public double getMaxZoomRatio()
        返回布局的最大缩放比例。
        返回:
        布局的最大缩放比例。
        默认值:
        默认值为 1000000000000。
      • setMaxZoomRatio

        public void setMaxZoomRatio(double value)
        设置布局的最大缩放比例。
        参数:
        value - 布局的最大缩放比例。
      • getMinZoomRatio

        public double getMinZoomRatio()
        返回布局的最小缩放比例。
        返回:
        布局的最小缩放比例。
        默认值:
        默认值为 0。
      • setMinZoomRatio

        public void setMinZoomRatio(double value)
        设置布局的最小缩放比例。
        参数:
        value - 布局的最小缩放比例。
      • getHorizontalPaperCount

        public int getHorizontalPaperCount()
        返回设置布局包含的横向页面纸张数。
        返回:
        设置布局包含的横向页面纸张数。
        默认值:
        默认值为 1。
      • setHorizontalPaperCount

        public void setHorizontalPaperCount(int value)
        设置设置布局包含的横向页面纸张数。
        参数:
        value - 设置布局包含的横向页面纸张数。
      • getVerticalPaperCount

        public int getVerticalPaperCount()
        返回布局包含的纵向页面纸张数。
        返回:
        布局包含的纵向页面纸张数。
        默认值:
        默认值为 1。
      • setVerticalPaperCount

        public void setVerticalPaperCount(int value)
        设置布局包含的纵向页面纸张数。
        参数:
        value - 布局包含的纵向页面纸张数。
      • getPrintPreview

        @Deprecated
        public boolean getPrintPreview()
        已过时。 11.2.0 已废弃
        返回是否在布局控件中显示打印预览。

        显示打印预览可以清楚的看到布局被打印出来的效果,打印预览可以将打印设置的情况可视化的显示出来。

        返回:
        是否在布局控件中显示打印预览。
        默认值:
        默认值为 false。
      • setPrintPreview

        @Deprecated
        public void setPrintPreview(boolean value)
        已过时。 11.2.0 已废弃
        设置是否在布局控件中显示打印预览。

        显示打印预览可以清楚的看到布局被打印出来的效果,打印预览可以将打印设置的情况可视化的显示出来。

        参数:
        value - 是否在布局控件中显示打印预览。
      • getWorkspace

        public Workspace getWorkspace()
        返回布局对象对应的工作空间。
        返回:
        布局对象对应的工作空间。
        默认值:
        默认值为空。
      • setWorkspace

        public void setWorkspace(Workspace workspace)
        设置布局对象对应的工作空间。
        参数:
        workspace - 布局对象对应的工作空间。
      • getElements

        public LayoutElements getElements()
        返回布局对象中的布局元素集合。布局中可以放置指北针、图名、比例尺等地图要素,这些要素都作为布局的元素被添加和管理。
        返回:
        布局对象中的布局元素集合。
        默认值:
        默认值为空的 LayoutElements 对象。
      • getImageSize

        public Dimension getImageSize()
        返回将布局输出为图片时的图片大小。
        返回:
        将布局输出为图片时的图片大小。
        默认值:
        默认值为{Width = 256, Height = 256}。
      • setImageSize

        public void setImageSize(Dimension size)
        设置将布局输出为图片时的图片大小。
        参数:
        size - 将布局输出为图片时的图片大小。
        抛出:
        IllegalStateException - 当前对象已经被释放。
      • getSelection

        public LayoutSelection getSelection()
        返回布局的选择集,通过该方法可以返回布局中被选中的对象的集合。
        返回:
        布局的选择集。
        抛出:
        IllegalStateException - 当前对象已经被释放。
        默认值:
        默认值为空的 LayoutSelection 对象。
      • clearSelection

        public void clearSelection()
        清除选择集
        抛出:
        IllegalStateException - 当前对象已经被释放。
      • setSelection

        public void setSelection(LayoutSelection layoutSelection)
        设置布局的选择集,通过该方法可以设置布局中被选中的对象的集合。
        参数:
        layoutSelection - 布局的选择集。
      • open

        public boolean open(String name)
        打开工作空间中已存在的布局,并将其显示在布局窗口中。
        参数:
        name - 工作空间中存在的布局名称。
        返回:
        打开成功返回 true,否则返回 false。
      • loadTemplate

        public boolean loadTemplate(String templateName)
        加载布局模板文件。
        参数:
        templateName - 布局模板文件的全路径名。
        返回:
        加载成功返回 true,否则返回 false。
      • saveAsTemplate

        public boolean saveAsTemplate(String templateName)
        另存为布局模板文件。

        SuperMap GIS 9D(2019)版本对布局存储进行了优化和调整,SuperMap GIS 9D(2019)及以上版本保存布局到工作空间后,布局存在兼容性问题,具体参见:Workspace.save()方法中的注意事项。

        参数:
        templateName - 布局模板文件的全路径名。
        返回:
        保存成功返回 true,否则返回 false。
      • zoomToPaper

        public void zoomToPaper()
        缩放页面使之充满布局窗口。

        如下图两个布局窗口,图1所示为未设置zoomToPaper时的布局显示效果,图2所示为设置zoomToPaper后布局的显示效果。

      • zoomToPaperWidth

        public void zoomToPaperWidth()
        按页面宽度缩放页面使之充满布局窗口,即:页面的宽度等于窗口的宽度。
      • zoomToPaperHeight

        public void zoomToPaperHeight()
        按页面高度缩放页面使之充满窗口,即:页面的高度等于窗口的高度。
      • zoom

        public void zoom(double ratio)
        按照缩放比例缩放页面,缩放后的比例尺为原比例尺与缩放比例的乘积。
        参数:
        ratio - 缩放比例。
      • pan

        public void pan(double offsetX,
                        double offsetY)
        平移布局对象。
        参数:
        offsetX - X 方向上的移动距离。
        offsetY - Y 方向上的移动距离。
      • refresh

        public void refresh()
        刷新布局。
      • pixelToLayout

        public Point2D pixelToLayout(Point point)
        将像素坐标转换成布局坐标。
        参数:
        point - 待转换成布局坐标的像素坐标值。
        返回:
        布局坐标。
      • layoutToPixel

        public Point layoutToPixel(Point2D point)
        将布局坐标转换成像素坐标。
        参数:
        point - 待转换成像素坐标的布局坐标值。
        返回:
        像素坐标。
      • outputLayoutToBMP

        public boolean outputLayoutToBMP(String fileName,
                                         int dpi)
        导出布局至 BMP 文件。
        参数:
        fileName - 导出的 BMP 文件的全路径。
        dpi - 给定的输出分辨率,采用屏幕分辨率。
        返回:
        导出成功返回 true,否则返回 false。
      • outputLayoutToJPG

        public boolean outputLayoutToJPG(String fileName)
        将布局窗口中可见范围的内容输出为 JPG 文件。当无界面出图时,出图范围需要根据设置 setImageSize() 方法来确定。
        参数:
        fileName - 导出的 JPG 文件的全路径。
        返回:
        导出成功返回 true,否则返回 false。
      • outputLayoutToJPG

        public boolean outputLayoutToJPG(String fileName,
                                         int dpi,
                                         int compress)
        将布局窗口中可见范围的内容输出为 JPG 文件。当无界面出图时,出图范围需要根据设置 setImageSize() 方法来确定。
        参数:
        fileName - 导出的 JPG 文件的全路径。
        dpi - 输出图片的 DPI。
        compress - 输出的JPG图片的压缩率,范围为 [10-100]。值越小,表示压缩率越高,同时,图像质量也相对降低;100 表示不压缩。
        返回:
        一个布尔值,导出成功返回 true,否则返回 false。
      • outputLayoutToPNG

        public boolean outputLayoutToPNG(String fileName,
                                         boolean isBackTransparent)
        将布局窗口中可见范围的内容输出为 PNG 文件。当无界面出图时,出图范围需要根据设置 setImageSize() 方法来确定。
        参数:
        fileName - 导出的 PNG 文件的全路径。
        isBackTransparent - 指定背景色是否透明。
        返回:
        导出成功返回 true,否则返回 false。
      • outputLayoutToEPS

        public boolean outputLayoutToEPS(String fileName)
        将布局窗口中可见范围的内容输出为 EPS 文件。当无界面出图时,出图范围需要根据设置 setImageSize() 方法来确定。
        参数:
        fileName - 导出的 EPS 文件的全路径。
        返回:
        导出成功返回 true,否则返回 false。
      • outputLayoutToEMF

        public boolean outputLayoutToEMF(String fileName)
        将布局窗口中可见范围的内容输出为 EMF 文件。当无界面出图时,出图范围需要根据设置 setImageSize() 方法来确定。

        该方法仅在 Windows 平台版本中提供。

        参数:
        fileName - 导出的 EMF 文件的全路径。
        返回:
        导出成功返回 true,否则返回 false。
      • outputLayoutToBitmap

        public BufferedImage outputLayoutToBitmap()
        将布局窗口中可见范围的内容输出为内存图片文件。当无界面出图时,出图范围需要根据设置 setImageSize() 方法来确定。
        返回:
        内存图片对象。
      • outputLayoutToGIF

        public boolean outputLayoutToGIF(String fileName,
                                         boolean isBackTransparent)
        将布局窗口中可见范围的内容输出为可交换图像文件(GIF 格式文件)。当无界面出图时,出图范围需要根据设置 setImageSize() 方法来确定。
        参数:
        fileName - 导出的 GIF 文件的全路径。
        isBackTransparent - 表示背景色是否透明。
        返回:
        输出成功返回 true,否则返回 false。
      • printToFile

        public boolean printToFile(String fileName,
                                   PrintFileType type,
                                   int dpi)
        将布局纸面范围的内容全部输出到文件。此方法支持设置出图的图片类型和 DPI 出图方式。对于大幅面、大数据地图的输出,可以通过此接口将地图输出成高分辨率的某种格式的图片,然后再对输出的图片进行打印。
        参数:
        fileName - 导出的文件的全路径。
        type - 设置出图的图片类型。
        dpi - 出图时设置的每英寸点数。
        返回:
        导出成功返回 true,否则返回 false。
      • printToFile

        public boolean printToFile(String fileName,
                                   PrintFileType type,
                                   int dpi,
                                   boolean isMultiPageWithPrinterPaper)
        将布局纸面范围的内容全部输出到图片文件或者PDF文件。此方法支持设置出图的图片类型和 DPI 出图方式。对于大幅面、大数据地图的输出,可以通过此接口将地图输出成高分辨率的某种格式的图片,然后再对输出的图片进行打印。
        参数:
        fileName - 导出的文件的全路径。
        type - 设置出图的图片类型。
        dpi - 出图时设置的每英寸点数。
        isMultiPageWithPrinterPaper - 是否按照打印纸张大小分页出图,true表示分页出图,false表示全幅出图。
        返回:
        导出成功返回 true,否则返回 false。
      • close

        public void close()
        关闭当前布局。
      • fromXML

        public boolean fromXML(String xml)
        通过 XML 字符串创建布局对象。
        参数:
        xml - 指定的 XML 字符串。
        返回:
        创建成功则返回true,否则返回false。
      • toXML

        public String toXML()
        返回布局对象的 XML 形式的描述信息。
        返回:
        布局对象的 XML 形式的描述信息。
      • getBackgroundStyle

        public GeoStyle getBackgroundStyle()
        返回布局的背景风格。
        返回:
        布局的背景风格。
      • setBackgroundStyle

        public void setBackgroundStyle(GeoStyle style)
        设置布局的背景风格。
        参数:
        style - 布局的背景风格。
      • isModified

        public boolean isModified()
        返回是否布局被修改过。
        返回:
        一个布尔值,布局被修改过返回 true,否则返回 false。
      • setModified

        public void setModified(boolean value)
        设置是否布局被修改过。
        参数:
        value - 设置是否布局被修改过。
      • isOverlapDisplayed

        public boolean isOverlapDisplayed()
        返回压盖时是否显示,这里的压盖,目前包含文本与文本压盖,统计图与统计图的压盖。
        返回:
        压盖时是否显示。
      • setOverlapDisplayed

        public void setOverlapDisplayed(boolean value)
        设置压盖时是否显示,这里的压盖,目前包含文本与文本压盖,统计图与统计图的压盖。
        参数:
        value - 压盖时是否显示
      • isTextAntialias

        public boolean isTextAntialias()
        返回是否布局文字反走样显示。
        返回:
        一个布尔值,布局文字反走样显示返回true,否则返回 false。
      • setTextAntialias

        public void setTextAntialias(boolean value)
        设置是否布局文字反走样显示。
        参数:
        value - 是否布局文字反走样显示。
      • isLineAntialias

        public boolean isLineAntialias()
        返回是否布局线型反走样显示。
        返回:
        一个布尔值,否布局线型反走样显示返回true,否则返回 false。
      • setLineAntialias

        public void setLineAntialias(boolean value)
        设置是否布局线型反走样显示。
        参数:
        value - 是否布局线型反走样显示。
      • getOverlapLengthOfPrinterPaper

        public int getOverlapLengthOfPrinterPaper()
        返回分页出图时页面重叠部分的长度。
        返回:
        重叠部分的长度,单位毫米。
      • setOverlapLengthOfPrinterPaper

        public void setOverlapLengthOfPrinterPaper(int value)
        设置分页出图时页面重叠部分的长度,便于拼接。
        参数:
        value - 重叠部分的长度,单位毫米。
      • ensureVisible

        public boolean ensureVisible(Rectangle2D rectangle2D)
        在指定的范围内,全幅显示布局对象,即:将布局对象在指定的范围内,居中显示在此地图布局控件中。
        参数:
        rectangle2D - 指定的显示范围
        返回:
        操作成功返回 true;否则返回 false。
      • layoutToLogical

        public Point2D layoutToLogical(Point2D point)
        将指定点的布局坐标转换为逻辑坐标。
        参数:
        point - 待转换成逻辑坐标的布局坐标值。
        返回:
        逻辑坐标。
      • logicalToLayout

        public Point2D logicalToLayout(Point2D point)
        将指定点的逻辑坐标转换为布局坐标。
        参数:
        point - 待转换成布局坐标的逻辑坐标值。
        返回:
        布局坐标。
      • logicalToPixel

        public Point logicalToPixel(Point2D point)
        将指定点的逻辑坐标转换为屏幕坐标。
        参数:
        point - 待转换成屏幕坐标的逻辑坐标值。
        返回:
        屏幕坐标。
      • pixelToLogical

        public Point2D pixelToLogical(Point point)
        将指定点的屏幕坐标转换为逻辑坐标。
        参数:
        point - 待转换成逻辑坐标的屏幕坐标值。
        返回:
        屏幕坐标。
      • dispose

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

        public boolean adjustLayoutPaperSize()
        设置布局页面(不包括页边距)适应布局中所有几何对象的范围,即将布局页面大小调整为布局中所有几何对象的最小外接矩形范围的大小。
        返回:
        一个布尔值,如果布局页面范围发生变化返回 true,否则返回 false。
      • hitTest

        public LayoutSelection hitTest(Point2D pt,
                                       double tolerance)
        返回选中的布局元素的集合。若指定的点与布局元素上最近点之间的距离在指定的容限范围内,则该布局元素被选中。如果布局中有多个重叠的布局元素都满足此条件,则均被选中,并返回这多个布局元素的集合。
        参数:
        pt - 指定的点对象。
        tolerance - 指定的容限。
        返回:
        选中的布局元素的集合。例如地图、指北针、比例尺等。
      • addDrawingListener

        public void addDrawingListener(MapLayoutDrawingListener l)
        添加一个用于接收布局绘制操作事件(MapLayoutDrawingEvent)的监听器。
        参数:
        l - 一个用于接收布局绘制操作事件的监听器。
      • removeDrawingListener

        public void removeDrawingListener(MapLayoutDrawingListener l)
        移除一个用于接收布局绘制操作事件(MapLayoutDrawingEvent)的监听器。
        参数:
        l - 一个用于接收布局绘制操作事件的监听器。
      • addDrawnListener

        public void addDrawnListener(MapLayoutDrawnListener l)
        添加一个用于接收布局绘制结束事件(MapLayoutDrawnEvent)的监听器。
        参数:
        l - 一个用于接收布局绘制结束事件的监听器。
      • removeDrawnListener

        public void removeDrawnListener(MapLayoutDrawnListener l)
        移除一个用于接收布局绘制结束事件(MapLayoutDrawnEvent)的监听器。
        参数:
        l - 一个用于接收布局绘制结束事件的监听器。
      • setSymbolScalable

        public void setSymbolScalable(boolean value)
        设置布局的符号大小是否随图缩放。 默认为False。True 表示随着布局的缩放而缩放,在布局放大的同时,符号同时也放大。
        参数:
        value - 一个布尔值,指示布局的符号大小是否随图缩放。 默认为False。True 表示随着布局的缩放而缩放,在布局放大的同时,符号同时也放大。
        抛出:
        IllegalStateException - 当前对象已经被释放。
      • isSymbolScalable

        public boolean isSymbolScalable()
        返回布局的符号大小是否随图缩放。 默认为False。True 表示随着布局的缩放而缩放,在布局放大的同时,符号同时也放大。
        返回:
        一个布尔值,指示布局的符号大小是否随图缩放。 默认为False。True 表示随着布局的缩放而缩放,在布局放大的同时,符号同时也放大。
        抛出:
        IllegalStateException - 当前对象已经被释放。
      • setPreLoadWebCache

        public void setPreLoadWebCache(int seconds)
        设置布局显示和出图时预先加载Web缓存图层的时间,单位为秒,默认为6秒。
        参数:
        seconds - 缓存时间
        默认值:
        默认为6秒。
      • refreshGeoMap

        public void refreshGeoMap(int geoMapID)
        刷新指定ID的地图对象
        参数:
        geoMapID - 指定地图对象的ID
        抛出:
        IllegalStateException - 当前对象已经被释放。
        IllegalStateException - 指定的geoMapID小于0。
      • getExternalXML

        public String getExternalXML()
        获取扩展XML内容
        返回:
        扩展XML内容
        抛出:
        IllegalStateException - 当前对象已经被释放。
      • isOutputWithHeaderFooter

        public boolean isOutputWithHeaderFooter()
        返回在打印时是否绘制页眉页脚范围(不包括打印为PDF,打印为PDF始终绘制页眉页脚范围)。
        返回:
        打印时绘制页眉页脚范围返回 true;否则返回 false。
        抛出:
        IllegalStateException - 当前对象已经被释放。
        从以下版本开始:
        11.2
      • setOutputWithHeaderFooter

        public void setOutputWithHeaderFooter(boolean value)
        设置在打印时是否绘制页眉页脚范围(不包括打印为PDF,打印为PDF始终绘制页眉页脚范围)。
        参数:
        value - 打印时是否绘制页眉页脚范围
        抛出:
        IllegalStateException - 当前对象已经被释放。
        从以下版本开始:
        11.2

Copyright © 2021–2024 SuperMap. All rights reserved.