public class Map
extends com.supermap.data.InternalHandleDisposable
地图类,负责地图显示环境的管理。
地图是对地理数据的可视化,通常由一个或多个图层组成。一个地图对象通常通过其图层集合对象 Layers 来管理其中的所有图层,并且地图必须与一个工作空间相关联,以便来显示该工作空间中的数据。另外,对地图的显示方式的设置将对其中的所有图层起作用。该类提供了对地图的各种显示方式的返回和设置,如地图的显示范围,比例尺,坐标以及量度单位,坐标系统以及文本、点等图层的默认显示方式等,并提供了对地图进行的相关操作的方法,如地图的打开与关闭,缩放、平移与全幅显示,以及地图的输出等。地图类支持无界面出图,即不需要关联到 MapControl 就可以显示地图,但是只能对地图进行显示及其简单的操作,不可以通过 Map 类显示的地图来操作数据。
注意:
限定符和类型 | 方法和说明 |
---|---|
void |
addDrawContinuingListener(MapDrawContinuingListener l)
添加一个用于接收地图绘制继续事件(
MapDrawContinuingEvent )的监听器。 |
void |
addDrawingListener(MapDrawingListener l)
添加一个用于接收地图绘制操作事件(
MapDrawingEvent )的监听器。 |
void |
addDrawnListener(MapDrawnListener l)
添加一个用于接收地图绘制结束事件(
MapDrawnEvent )的监听器。 |
void |
addMapClosedListener(MapClosedListener l)
添加一个用于接收地图关闭事件(
MapClosedEvent )的监听器。 |
void |
addMapOpenedListener(MapOpenedListener l)
添加一个用于接收地图打开事件(
MapOpenedEvent )的监听器。 |
void |
addSteppedListener(SteppedListener l)
添加一个用于接收地图输出为影像数据集的进度条(
SteppedEvent )的监听器。 |
void |
addTrackingLayerDrawingListener(TrackingLayerDrawingListener l)
添加一个用于接收绘制跟踪图层事件(
TrackingLayerDrawingEvent )的监听器。 |
void |
addTrackingLayerDrawnListener(TrackingLayerDrawnListener l)
添加一个用于接收绘制跟踪图层结束事件(
TrackingLayerDrawnEvent )的监听器。 |
void |
close()
关闭当前地图。
|
void |
dispose()
释放对象所占用的资源。
|
boolean |
ensureVisible(Geometry geometry)
用于全幅显示指定几何对象,即将指定几何对象全幅显示在此地图控件中。
|
boolean |
ensureVisible(Geometry geometry,
double ratio)
用于按指定的比例全幅显示指定几何对象,即将指定几何对象全幅显示在此地图控件中,并根据 ratio 参数的值设置其显示比例。
|
boolean |
ensureVisible(Layer layer)
用于全幅显示给定的图层所对应的空间对象。
|
boolean |
ensureVisible(Layer layer,
double ratio)
用于全幅显示给定图层中的空间对象,并通过设置 ratio 来指定显示的比率。
|
boolean |
ensureVisible(Recordset recordset)
用于全幅显示记录集对应的若干空间对象,此时,地图控件的可视范围为包含记录集中的所有记录所对应的空间对象的最小外接矩形构成的最小矩形。
|
boolean |
ensureVisible(Recordset recordset,
double ratio)
用于全幅显示记录集对应的若干空间对象,并通过设置 ratio 来指定显示的比率。
|
Selection[] |
findSelection(boolean hasGeometrySelected)
返回当前地图的选择集。
|
boolean |
fromXML(String xml)
根据指定的 XML 字符串创建地图对象。
|
boolean |
fromXML(String xml,
WorkspaceVersion version)
用 XML 字符串创建地图对象。
|
double |
getAngle()
返回当前地图的旋转角度。
|
GeoStyle |
getBackgroundStyle()
返回当前地图的背景风格。
|
BookMarks |
getBookMarks()
返回地图的书签集合,地图书签用来保存地图浏览时的感兴趣区域。
|
Rectangle2D |
getBounds()
返回当前地图的空间范围。
|
Point2D |
getCenter()
返回当前地图的显示范围的中心点。
|
ChartSetting |
getChartSetting()
返回海图显示参数,如海图的显示模式、显示类型名称、颜色模式、安全水深线等各属性。
|
GeoRegion |
getClipRegion()
返回地图显示裁剪的区域。
|
MapColorMode |
getColorMode()
返回当前地图的颜色模式。
|
Unit |
getCoordUnit()
返回当前地图的坐标单位。
|
int |
getCurrentPlayerTick()
返回当前地图播放显示的帧的序号。
|
Rectangle2D |
getCustomBounds()
返回地图自定义边界。
|
Date |
getDefaultMapEndTime()
遍历所有启用时间且可见的图层的时间字段,返回时间值的最大值作为时间线的终止时间。
|
Date |
getDefaultMapStartTime()
遍历所有启用时间且可见的图层的时间字段,返回时间值的最小值作为时间线的起始时间。
|
String |
getDescription()
返回当前地图的描述信息。
|
Unit |
getDistanceUnit()
返回当前地图的距离量度单位。
|
double |
getDPI()
返回地图的DPI,代表每英寸有多少个像素,值域为(60,180)。
|
DynamicLayers |
getDynamicLayers()
返回地图的动态图层集合。
|
CoordSysTransMethod |
getDynamicPrjTransMethod()
返回地图动态投影时所使用的地理坐标系转换算法。
|
CoordSysTransMethod |
getDynamicPrjTransMethond()
已过时。
|
CoordSysTransParameter |
getDynamicPrjTransParameter()
设置地图动态投影时,当源投影与目标目标投影所基于的地理坐标系不同时,可以通过该方法设置转换参数。
|
CoordSysTransRunnable |
getDynamicPrjTransRunnable()
返回地图自定义投影转换方法的执行对象。
|
String |
getExternalXML()
获取布局的扩展XML
|
GridSetting |
getGrid()
返回地图对象的格网设置。
|
String |
getHashCode(ImageType imageType)
根据对应的图片类型,返回当前地图对应的 HashCode,该值通常用于计算地图缓存瓦片数据的文件名。
|
Dimension |
getImageSize()
返回无界面出图时图片的大小,以像素为单位。
|
String |
getLastProfilingResult()
返回地图性能分析的结果。
|
Layers |
getLayers()
返回当前地图所包含的图层集合对象。
|
Rectangle2D |
getLockedViewBounds()
返回 MapControl 地图控件中锁定的地图可视范围。
|
MapControl |
getMapControl()
获取当前地图绑定的地图窗口控件
|
Date |
getMapEndTime()
返回地图播放显示时态数据的时间线长度的终止时间值。
|
LabelAvoidWeightInfos |
getMapLabelAvoidWeightInfos()
获取标签避让的权重信息
|
Date |
getMapStartTime()
返回地图播放显示时态数据的时间线长度的起始时间值。
|
double |
getMaxScale()
返回地图的最大比例尺。
|
double |
getMaxVisibleTextSize()
返回文本的最大可见尺寸,单位为毫米。
|
int |
getMaxVisibleVertex()
返回最大几何对象可见节点数,如果几何对象的节点数超过指定的个数,则该几何对象不显示。
|
double |
getMinScale()
返回地图的最小比例尺。
|
TimeSpan |
getMinTimeStep()
计算地图播放显示时态数据的默认时间步长间隔。
|
double |
getMinVisibleTextSize()
返回文本的最小可见尺寸,单位为毫米。
|
String |
getName()
返回当前地图的名称。
|
MapOverlapDisplayedOptions |
getOverlapDisplayedOptions()
返回地图的压盖过滤显示选项。
|
PrjCoordSys |
getPrjCoordSys()
返回地图的投影坐标系统。
|
Resources |
getResouces()
已过时。
|
Resources |
getResources()
返回地图所使用的资源库,如果该方法返回值为 null 时,则使用工作空间中的资源库中的符号。
|
double |
getScale()
返回当前地图的显示比例尺。
|
ScreenLayer |
getScreenLayer()
返回地图对象的屏幕图层,该图层的坐标与屏幕坐标系相同。
|
int |
getTileRefreshIntervals()
获取瓦片图层刷新间隔
|
boolean |
getTileZoomInCacheEnable()
获取是否开启瓦片地图放大过渡
|
String |
getTimeFormat()
时态数据播放显示时,如果设置窗口显示当前帧的时间范围,该接口可以返回显示时间的格式。
|
TimeSpan |
getTimeStep()
返回播放时态数据的时间步长间隔。
|
TextPosition |
getTimeTextPosition()
返回时态数据播放显示时,窗口所显示的时间文本的位置,位置为时间文本锚点相对于窗口的位置。
|
TextStyle |
getTimeTextStyle()
当时态数据播放显示时,可以设置在窗口上显示当前帧的起止时间,该接口返回时间文本的样式。
|
TimeSpan |
getTimeWindow()
返回播放时态数据的时间窗。
|
TrackingLayer |
getTrackingLayer()
返回当前地图的跟踪图层。
|
Rectangle2D |
getViewBounds()
返回当前地图的可见范围,也称显示范围。
|
double[] |
getVisibleScales()
返回地图的可见比例尺数组。
|
Workspace |
getWorkspace()
返回当前地图所关联的工作空间。
|
boolean |
isAntialias()
返回是否反走样地图。
|
boolean |
isClipRegionEnabled()
返回地图显示裁剪区域是否有效,true 表示有效。
|
boolean |
isCompatibleFontHeight()
表示是否为兼容模式下的字。
|
boolean |
isContainLayerChart()
返回当前地图是否包含海图图层,true,表示包含;false,表示不包含。
|
boolean |
isCustomBoundsEnabled()
返回自定义地图边界是否有效。
|
boolean |
isDebugMode()
获取地图调试模式
|
boolean |
isDisableAutoAvoidEffect()
是否在出图的时候关掉地图的自动避让效果。
|
boolean |
isDisableDynamicEffect()
返回是否在出图的时候关闭地图的动态效果。
|
boolean |
isDrawTextAtLast()
获取是否标签图层最后绘制。
|
boolean |
isDynamicProjection()
返回是否允许地图动态投影显示。
|
boolean |
isFillMarkerAngleFixed()
返回是否固定填充符号的填充角度。
|
boolean |
isFullLabel() |
boolean |
isGraphicsAlphaEnable()
返回地图是否使用了Alpha通道。
|
boolean |
isInflateBounds()
获取地图查询时是否扩大范围
|
boolean |
isLineAntialias()
返回是否地图线型反走样显示。
|
boolean |
isMapOutputFull() |
static boolean |
isMapProfileingEnable()
返回是否开启地图的性能信息收集,在对地图性能分析时可以开启该属性。
|
boolean |
isMapThreadDrawingEnabled()
返回是否另启线程绘制地图元素,true表示另启线程绘制地图元素,可以提升大数据量地图的绘制性能。
|
boolean |
isMarkerAngleFixed()
返回一个布尔值指定点状符号的角度是否固定。
|
boolean |
isModified()
返回一个布尔值指定当前地图是否被修改了。
|
boolean |
isOrthographView()
返回用于控制地图是否以正射投影方式显示。
|
boolean |
isOverlapDisplayed()
返回重叠时是否显示对象。
|
boolean |
isPaintBackground()
返回一个布尔值指定是否绘制地图背景。
|
boolean |
isShowTime()
返回时态数据播放显示时,窗口是否显示当前帧的时间范围的文本,true表示显示,false表示不显示。
|
boolean |
isSymbolFillIgnored()
返回当前地图是否忽略符号填充。
|
boolean |
isTempCacheFileEnable()
获取是否已经启动地图临时缓存
|
boolean |
isTextAngleFixed()
返回一个布尔值指定文本角度是否固定。
|
boolean |
isTextAntialias()
返回是否使用地图文字反走样显示功能。
|
boolean |
isTextLayerReverse()
获取标签绘制是否反序
如果希望越上层的标签图层先绘制来避免被其他图层压盖而导致不显示,需要将标签绘制是否反序设置为true
|
boolean |
isTextOrientationFixed()
返回一个布尔值指定文本朝向是否固定。
|
boolean |
isTimeEnable()
返回地图是否启用播放显示时态数据的功能。
|
boolean |
IsTimeEnable()
已过时。
|
boolean |
isUseSystemDPI()
返回是否使用系统的的DPI。
|
boolean |
isViewBoundsLocked()
返回一个布尔值,用于指定 MapControl 地图控件中是否锁定地图的可视范围。
|
boolean |
isVisibleScalesEnabled()
返回是否使用固定比例尺来显示地图。
|
Point2D |
logicalToMap(Point2D point)
将地图中指定点的逻辑坐标转换为地图坐标。
|
Point |
logicalToPixel(Point2D point)
将地图中指定点的逻辑坐标转换为屏幕坐标。
|
static void |
main(String[] args) |
Point2D |
mapToLogical(Point2D point)
将地图中指定点的地图坐标转换为逻辑坐标。
|
Point |
mapToPixel(Point2D point)
将地图中指定点的地图坐标转换为像素坐标。
|
Rectangle2D |
measureText(String text,
TextStyle style)
计算地图中文本的精确宽高范围。
|
boolean |
open(String name)
打开指定名称的地图。
|
BufferedImage |
outputMapToBitmap()
将地图输出为内存图片对象。
|
BufferedImage |
outputMapToBitmap(boolean isBackTransparent)
将地图输出为内存图片对象。
|
boolean |
outputMapToBMP(String fileName)
将地图导出为微软位图文件(.bmp)。
|
DatasetImage |
outputMapToDatasetImage(Datasource datasource,
String datasetName,
double resolution,
Rectangle2D bounds,
EncodeType encodeType)
将地图输出为影像数据集。
|
boolean |
outputMapToEMF(String fileName)
已过时。
11.1 版本已废弃
|
boolean |
outputMapToEPS(String fileName)
已过时。
已过时。
|
boolean |
outputMapToFile(String fileName,
ImageType type,
boolean isBackTransparent)
根据给定的参数,将地图输出为图片文件。
|
boolean |
outputMapToFile(String fileName,
ImageType type,
int dpi,
Rectangle2D bounds,
boolean isBackTransparent)
根据给定的参数,将地图输出为图片文件。
|
boolean |
outputMapToGIF(String fileName,
boolean isBackTransparent)
已过时。
已过时。
|
boolean |
outputMapToJPG(String fileName)
将地图导出为 JPEG 图像文件(*.jpg)。
|
boolean |
outputMapToPDF(String fileName)
将地图输出为PDF文件。
|
boolean |
outputMapToPNG(String fileName,
boolean isBackTransparent)
将地图导出为便携网络图形(PNG)格式图像文件。
|
boolean |
outputMapToWEBP(String fileName,
boolean isBackTransparent)
地图输出为webp文件
|
boolean |
outputScreenLayerToPNG(String fileName,
boolean isBackTransparent)
根据给定的参数,将屏幕图层导出为 PNG 文件。
|
boolean |
outputScreenLayerToPNG(String fileName,
boolean isBackTransparent,
int dpi,
Rectangle2D bounds)
/**
根据给定的参数,将屏幕图层导出为 PNG 文件。
|
boolean |
outputTrackingLayerToPNG(String fileName,
boolean isBackTransparent)
导出跟踪图层上的地图至 PNG 文件。
|
boolean |
outputTrackingLayerToPNG(String fileName,
boolean isBackTransparent,
int dpi,
Rectangle2D bounds)
根据指定的参数,将跟踪图层导出至 PNG 文件。
|
void |
pan(double offsetX,
double offsetY)
将地图平移指定的距离。
|
Point2D |
pixelToLogical(Point point)
将地图中指定点的屏幕坐标转换为逻辑坐标。
|
Point2D |
pixelToMap(Point point)
将地图中指定点的像素坐标转换为地图坐标。
|
void |
refresh()
重新绘制当前地图。
|
void |
refreshEx(Rectangle2D rect)
刷新给定范围内的地图内容。
|
void |
refreshTrackingLayer()
用于刷新地图窗口中的跟踪图层。
|
void |
refreshWithSnapshot()
重绘地图,并刷新快照图层
|
void |
removeDrawContinuingListener(MapDrawContinuingListener l)
移除一个用于接收地图绘制继续事件(
MapDrawContinuingEvent )的监听器。 |
void |
removeDrawingListener(MapDrawingListener l)
移除一个用于接收地图绘制操作事件(
MapDrawingEvent )的监听器。 |
void |
removeDrawnListener(MapDrawnListener l)
移除一个用于接收地图绘制结束事件(
MapDrawnEvent )的监听器。 |
void |
removeMapClosedListener(MapClosedListener l)
移除一个用于接收地图关闭事件(
MapClosedEvent )的监听器。 |
void |
removeMapOpenedListener(MapOpenedListener l)
移除一个用于接收地图打开事件(
MapOpenedEvent )的监听器。 |
void |
removeSteppedListener(SteppedListener l)
移除一个用于接收地图输出为影像数据集的进度条(
SteppedEvent )的监听器。 |
void |
removeTrackingLayerDrawingListener(TrackingLayerDrawingListener l)
移除一个用于接收绘制跟踪图层事件(
TrackingLayerDrawingEvent )的监听器。 |
void |
removeTrackingLayerDrawnListener(TrackingLayerDrawnListener l)
移除一个用于接收绘制跟踪图层结束事件(
TrackingLayerDrawnEvent )的监听器。 |
void |
setAngle(double value)
设置当前地图的旋转角度。
|
void |
setAntialias(boolean value)
设置是否反走样地图。
|
void |
setBackgroundStyle(GeoStyle style)
设置当前地图的背景风格。
|
void |
setCenter(Point2D point)
设置当前地图的显示范围的中心点。
|
void |
setClipRegion(GeoRegion geoRegion)
设置地图显示裁剪的区域。
|
void |
setClipRegionEnabled(boolean value)
设置地图显示裁剪区域是否有效,true 表示有效。
|
void |
setColorMode(MapColorMode mapColorMode)
设置当前地图的颜色模式。
|
void |
setCompatibleFontHeight(boolean value)
设置是否为兼容模式下的字。
|
void |
setCoordUnit(Unit value)
设置当前地图的坐标单位。
|
void |
setCurrentPlayerTick(int currentTick)
设置当前地图播放显示的帧的序号。
|
void |
setCustomBounds(Rectangle2D rectangle2D)
设置地图自定义边界。
|
void |
setCustomBoundsEnabled(boolean value)
设置自定义地图边界是否有效。
|
static void |
setDatasetToBeUpdated(Dataset dataset) |
void |
setDebugMode(boolean value)
设置地图调试模式
|
void |
setDescription(String value)
设置当前地图的描述信息。
|
void |
setDisableAutoAvoidEffect(boolean value)
设置是否在出图的时候关掉地图的自动避让效果。
|
void |
setDisableDynamicEffect(boolean value)
设置是否在出图的时候关闭地图的动态效果。
|
void |
setDistanceUnit(Unit value)
设置当前地图的距离量度单位。
|
void |
setDPI(double value)
设置地图的DPI,代表每英寸有多少个像素,值域为(60,180)。
|
void |
setDrawTextAtLast(boolean value)
设置是否标签图层最后绘制。
|
void |
setDynamicPrjTransMethod(CoordSysTransMethod transMethod)
设置地图动态投影时,当源投影与目标目标投影所基于的地理坐标系不同时,需要设置该转换算法。
|
void |
setDynamicPrjTransMethond(CoordSysTransMethod transMethod)
已过时。
|
void |
setDynamicPrjTransParameter(CoordSysTransParameter value)
设置动态投影坐标系的转换参数。
|
void |
setDynamicPrjTransRunnable(CoordSysTransRunnable value)
设置地图自定义投影转换方法。
|
void |
setDynamicProjection(boolean value)
设置是否允许地图动态投影显示。
|
void |
setExternalXML(String enternalXML)
设置布局的扩展XML,用于存储用户需要的内容
|
void |
setFillMarkerAngleFixed(boolean value)
设置是否固定填充符号的填充角度。
|
void |
setFullLabel(boolean value) |
void |
setGraphicsAlphaEnable(boolean value)
设置地图是否使用Alpha通道。
|
void |
setGrid(GridSetting value)
设置地图对象的格网设置。
|
void |
setImageSize(Dimension size)
设置无界面出图时图片的大小,以像素为单位。
|
void |
setInflateBounds(boolean value)
地图查询时是否扩大范围
|
void |
setIsShowTime(boolean isShowTime)
设置时态数据播放显示时,窗口是否显示当前帧的时间范围的文本,true表示显示,false表示不显示。
|
void |
setLineAntialias(boolean value)
设置是否地图线型反走样显示。
|
void |
setLockedViewBounds(Rectangle2D rect)
设置地图控件中锁定的地图可视范围。
|
void |
setMapEndTime(Date endTime)
设置地图播放显示时态数据的时间线长度的终止时间值。
|
void |
setMapOutputFull(boolean value) |
static void |
setMapProfileingEnable(boolean value)
设置是否开启地图的性能信息收集,在对地图性能分析时可以开启该属性。
|
void |
setMapStartTime(Date startTime)
设置地图播放显示时态数据的时间线长度的起始时间值。
|
void |
setMapThreadDrawingEnabled(boolean value)
设置是否另启线程绘制地图元素,true表示另启线程绘制地图元素,可以提升大数据量地图的绘制性能。
|
void |
setMarkerAngleFixed(boolean value)
设置一个布尔值指定点状符号的角度是否固定。
|
void |
setMaxScale(double value)
设置地图的最大比例尺。
|
void |
setMaxVisibleTextSize(double value)
设置文本的最大可见尺寸,单位为毫米。
|
void |
setMaxVisibleVertex(int value)
设置最大几何对象可见节点数,如果几何对象的节点数超过指定的个数,则该几何对象不显示。
|
void |
setMinScale(double value)
设置地图的最小比例尺。
|
void |
setMinVisibleTextSize(double value)
设置文本的最小可见尺寸,单位为毫米。
|
void |
setModified(boolean value)
设置当前地图是否被修改了。
|
void |
setName(String value)
设置当前地图的名称。
|
void |
setOrthographView(boolean value)
设置用于控制地图是否以正射投影方式显示。
|
void |
setOverlapDisplayed(boolean value)
设置重叠时是否显示对象。
|
void |
setOverlapDisplayedOptions(MapOverlapDisplayedOptions value)
设置地图的压盖过滤显示选项。
|
void |
setPaintBackground(boolean value)
设置一个布尔值指定是否绘制地图背景。
|
void |
setPreLoadWebCache(int seconds)
设置地图显示和出图时预先加载Web缓存图层的时间,单位为秒,默认为6秒。
|
void |
setPrjCoordSys(PrjCoordSys value)
设置地图的投影坐标系统。
|
void |
setResources(Resources resources)
设置地图所使用的资源库,如果该方法返回值为 null 时,则使用工作空间中的资源库中的符号。
|
void |
setScale(double value)
设置当前地图的显示比例尺。
|
void |
setSymbolFillIgnored(boolean value)
设置当前地图是否忽略符号填充。
|
void |
setTempCacheFileEnable(boolean value)
设置是否启用临时缓存文件
|
void |
setTextAngleFixed(boolean value)
设置一个布尔值指定文本角度是否固定。
|
void |
setTextAntialias(boolean value)
设置是否使用地图文字反走样显示功能。
|
void |
setTextLayerReverse(boolean value)
设置标签绘制是否反序。
|
void |
setTextOrientationFixed(boolean value)
设置一个布尔值指定文本朝向是否固定。
|
void |
setTileRefreshIntervals(int nTime)
设置瓦片刷新间隔
|
void |
setTileZoomInCacheEnable(boolean bEnable)
设置是否开启瓦片地图放大过渡,默认开启
|
void |
setTimeEnable(boolean bEnable)
设置地图是否启用播放显示时态数据的功能。
|
void |
setTimeFormat(String timeFormat)
时态数据播放显示时,如果设置窗口显示当前帧的时间范围,该接口可以设置显示时间的格式。
|
void |
setTimeStep(TimeSpan timeStep)
设置播放时态数据的时间步长间隔。
|
void |
setTimeTextPosition(TextPosition timeTextPosition)
设置时态数据播放显示时,窗口所显示的时间文本的位置,位置为时间文本锚点相对于窗口的位置。
|
void |
setTimeTextStyle(TextStyle timeTextStyle)
当时态数据播放显示时,可以设置在窗口上显示当前帧的起止时间,该接口可以设置时间文本的样式。
|
void |
setTimeWindow(TimeSpan timeWindow)
设置播放时态数据的时间窗。
|
void |
setUseSystemDPI(boolean value)
返回是否使用系统的的DPI。
|
void |
setViewBounds(Rectangle2D rect)
设置当前地图的可见范围,也称显示范围。
|
void |
setViewBoundsLocked(boolean isViewBoundsLocked)
设置一个布尔值指定 MapControl 地图控件中是否锁定地图的可视范围。
|
void |
setVisibleScales(double[] values)
设置地图的可见比例尺数组,设置后只在设定的可见比例尺范围内时才显示地图。
|
void |
setVisibleScalesEnabled(boolean value)
设置是否使用固定比例尺来显示地图。
|
void |
setWorkspace(Workspace workspace)
设置当前地图所关联的工作空间。
|
String |
toXML()
返回此地图对象的 XML 字符串形式的描述。
|
void |
viewEntire()
全幅显示此地图。
|
void |
zoom(double ratio)
将地图放大或缩小指定的比例。
|
public Map()
public Map(Workspace workspace)
workspace
- 指定的工作空间。IllegalArgumentException
- 非法参数public static void main(String[] args)
public String getName()
public void setName(String value)
value
- 指定当前地图的名称。public boolean isClipRegionEnabled()
用户可以任意设定一个地图显示的区域,该区域外的地图内容,将不会显示。可用于布局输出或地图打印输出,可以将设置保存到工作空间,但不会修改原数据。
public void setClipRegionEnabled(boolean value)
用户可以任意设定一个地图显示的区域,该区域外的地图内容,将不会显示。可用于布局输出或地图打印输出,可以将设置保存到工作空间,但不会修改原数据。
value
- 一个布尔值指定地图显示裁剪区域是否有效。public GeoRegion getClipRegion()
用户可以任意设定一个地图显示的区域,该区域外的地图内容,将不会显示。可用于布局输出或地图打印输出,可以将设置保存到工作空间,但不会修改原数据。
public void setClipRegion(GeoRegion geoRegion)
用户可以任意设定一个地图显示的区域,该区域外的地图内容,将不会显示。可用于布局输出或地图打印输出,可以将设置保存到工作空间,但不会修改原数据。
geoRegion
- 地图显示裁剪的区域。public String getDescription()
public void setDescription(String value)
value
- 指定当前地图的描述信息。public double getAngle()
public void setAngle(double value)
value
- 指定当前地图的旋转角度。public GeoStyle getBackgroundStyle()
public void setBackgroundStyle(GeoStyle style)
style
- 指定当前地图的背景风格。public Rectangle2D getBounds()
public Rectangle2D getViewBounds()
setViewBounds()
方法来进行设置,还可以通过设置显示范围的中心点(Center)和显示比例尺(Scale)的方式来进行设置。public boolean isViewBoundsLocked()
public void setViewBoundsLocked(boolean isViewBoundsLocked)
isViewBoundsLocked
- 指定一个布尔值,用于指定此地图控件的可视范围是否锁定。public void setViewBounds(Rectangle2D rect)
rect
- 指定当前地图的可见范围。public Rectangle2D getLockedViewBounds()
public void setLockedViewBounds(Rectangle2D rect)
rect
- 指定地图控件锁定的可视范围。public Point2D getCenter()
public void setCenter(Point2D point)
point
- 指定当前地图的显示范围的中心点。public MapColorMode getColorMode()
MapColorMode
MapColorMode.DEFAULT
。public void setColorMode(MapColorMode mapColorMode)
mapColorMode
- 指定当前地图的颜色模式。MapColorMode
public boolean isAntialias()
当面几何对象风格的轮廓线使用 ID为5的系统线型符号(即:NULL系统线型,GeoStyle.setLineSymbolID(int)
设置为 5)时,轮廓线反走样无效。
public void setAntialias(boolean value)
当面几何对象风格的轮廓线使用 ID为5的系统线型符号(即:NULL系统线型,GeoStyle.setLineSymbolID(int)
设置为 5)时,轮廓线反走样无效。
value
- 用一个布尔值指定是否反走样地图。public boolean isTextAngleFixed()
public void setTextAngleFixed(boolean value)
value
- 一个布尔值指定文本角度是否固定。public boolean isTextOrientationFixed()
public void setTextOrientationFixed(boolean value)
value
- 一个布尔值,用于指定文本朝向是否固定。public boolean isMarkerAngleFixed()
public void setMarkerAngleFixed(boolean value)
value
- 指定点状符号的角度是否固定。public boolean isModified()
public void setModified(boolean value)
当地图的任何显示属性发生变化,或者其中的 layers 或 layer 对象发生变化,都认为该地图被修改。
value
- 当前地图是否被修改了public boolean isPaintBackground()
public void setPaintBackground(boolean value)
value
- 用一个布尔值,用于指定是否绘制地图背景。public double getMaxVisibleTextSize()
public void setMaxVisibleTextSize(double value)
value
- 指定文本的最大可见尺寸。public double getMinVisibleTextSize()
public void setMinVisibleTextSize(double value)
value
- 指定文本的最小可见尺寸。public int getMaxVisibleVertex()
public void setMaxVisibleVertex(int value)
value
- 最大几何对象可见节点数。public double getScale()
public void setScale(double value)
value
- 指定当前地图的显示比例尺。public double getMinScale()
public void setMinScale(double value)
value
- 地图的最小比例尺。public double getMaxScale()
public void setMaxScale(double value)
value
- 地图的最大比例尺。public Unit getCoordUnit()
public void setCoordUnit(Unit value)
value
- 指定当前地图的坐标单位。public Unit getDistanceUnit()
public void setDistanceUnit(Unit value)
value
- 指定当前地图的距离量度单位。public TrackingLayer getTrackingLayer()
TrackingLayer
类。public ScreenLayer getScreenLayer()
public boolean isDynamicProjection()
public void setDynamicProjection(boolean value)
value
- 一个布尔值,用于指定是否允许地图动态投影显示。public PrjCoordSys getPrjCoordSys()
PrjCoordSys
。public void setPrjCoordSys(PrjCoordSys value)
PrjCoordSys
。value
- 地图的投影坐标系统。@Deprecated public CoordSysTransMethod getDynamicPrjTransMethond()
public CoordSysTransMethod getDynamicPrjTransMethod()
Map对象动态投影支持设置地理坐标系转换方法(参见:setDynamicPrjTransMethod(CoordSysTransMethod) 方法
),以及参数的设置(参见:getDynamicPrjTransParameter 方法
),用于满足在动态投影时更准确的转换。
@Deprecated public void setDynamicPrjTransMethond(CoordSysTransMethod transMethod)
public void setDynamicPrjTransMethod(CoordSysTransMethod transMethod)
此处的投影算法不支持自定义算法,即:CoordSysTransMethod.MTH_EXTENTION。
Map对象动态投影支持设置地理坐标系转换方法(参见:setDynamicPrjTransMethod(CoordSysTransMethod) 方法
),以及参数的设置(参见:getDynamicPrjTransParameter 方法
),用于满足在动态投影时更准确的转换。
transMethod
- 地理坐标系转换算法。public CoordSysTransParameter getDynamicPrjTransParameter()
Map对象动态投影支持设置地理坐标系转换方法(参见:setDynamicPrjTransMethod(CoordSysTransMethod) 方法
),以及参数的设置(参见:getDynamicPrjTransParameter 方法
),用于满足在动态投影时更准确的转换。
public void setDynamicPrjTransParameter(CoordSysTransParameter value)
Map对象动态投影支持设置地理坐标系转换方法(参见:setDynamicPrjTransMethod(CoordSysTransMethod) 方法
),以及参数的设置(参见:getDynamicPrjTransParameter 方法
),用于满足在动态投影时更准确的转换。
value
- 动态投影坐标系的转换参数。public CoordSysTransRunnable getDynamicPrjTransRunnable()
public void setDynamicPrjTransRunnable(CoordSysTransRunnable value)
value
- 地图自定义投影转换方法的执行对象。public Layers getLayers()
public Workspace getWorkspace()
public void setWorkspace(Workspace workspace)
workspace
- 指定当前地图所关联的工作空间。public Dimension getImageSize()
public void setImageSize(Dimension size)
size
- 无界面出图时图片的大小。public boolean isOverlapDisplayed()
public void setOverlapDisplayed(boolean value)
value
- 一个布尔值,用于指定重叠时是否显示对象。public MapOverlapDisplayedOptions getOverlapDisplayedOptions()
与方法Map.isOverlapDisplayed()一起使用,用来处理地图中各种对象的压盖显示。当 Map.isOverlapDisplayed()方法的返回值为 false 时(通过方法 Map.setOverlapDisplayed()的设置实现),用方法Map.getOverlapDisplayedOptions()得到的各设置项才会起作用。
public void setOverlapDisplayedOptions(MapOverlapDisplayedOptions value)
与方法Map.isOverlapDisplayed()一起使用,用来处理地图中各种对象的压盖显示。当 Map.isOverlapDisplayed()方法的返回值为 false 时(即通过方法 Map.setOverlapDisplayed()的设置实现),用方法Map.setOverlapDisplayedOptions()得到的各设置项才会起作用。
value
- 用于指定地图的过滤显示选项。public GridSetting getGrid()
public void setGrid(GridSetting value)
value
- 地图对象的格网设置。@Deprecated public Resources getResouces()
public Resources getResources()
public void setResources(Resources resources)
resources
- 地图所使用的资源库。public Rectangle2D getCustomBounds()
isCustomBoundsEnabled()
方法返回值为 true 时, viewEntire()
方法会使用该字段值来进行全幅显示;
在 isCustomBoundsEnabled()
方法返回值为 false 时,viewEntire()
方法会使用 getBounds()
的返回值来进行全幅显示。public void setCustomBounds(Rectangle2D rectangle2D)
isCustomBoundsEnabled()
方法返回值为 true 时, viewEntire()
方法会使用该字段值来进行全幅显示;
在 isCustomBoundsEnabled()
方法返回值为 false 时,viewEntire()
方法会使用 getBounds()
的返回值来进行全幅显示。rectangle2D
- 地图自定义边界。public boolean isCustomBoundsEnabled()
viewEntire()
方法会使用 getCustomBounds
方法的返回值作为边界来进行全幅显示;
该方法返回值为 false 时,viewEntire()
方法会使用 getBounds()
方法的返回值作为边界来进行全幅显示。public void setCustomBoundsEnabled(boolean value)
viewEntire()
方法会使用 getCustomBounds
方法的返回值作为边界来进行全幅显示;
该方法返回值为 false 时,viewEntire()
方法会使用 getBounds()
方法的返回值作为边界来进行全幅显示。value
- 自定义地图边界是否有效public boolean isVisibleScalesEnabled()
public void setVisibleScalesEnabled(boolean value)
value
- 是否使用固定比例尺来显示地图。public double[] getVisibleScales()
public void setVisibleScales(double[] values)
用户设置的比例尺数组在重新获取时会按照升序排列。
values
- 地图的可见比例尺数组。public boolean isTextAntialias()
public void setTextAntialias(boolean value)
value
- 是否使用地图文字反走样显示功能。public boolean isLineAntialias()
public void setLineAntialias(boolean value)
value
- 是否地图线型反走样显示。@Deprecated public boolean outputMapToEMF(String fileName)
将地图窗口中可见范围的内容输出为 EMF 文件。当无界面出图时,出图范围需要根据设置setImageSize()来确定。
注意:当比例尺为无穷大(即 getScale()
方法返回值为 0)时出图失败。
将地图窗口中可见范围的内容输出为 EMF 文件时不建议做透明、渐变、半透明等特效。
该方法仅在 Windows 平台版本中提供。
fileName
- 导出的 EMF 文件的名称。public boolean outputMapToPDF(String fileName)
关于地图输出为PDF文件的详细说明,请参见:地图和布局输出为PDF。
fileName
- 指定PDF文件保存路径,路径为包含文件名的全路径。public BufferedImage outputMapToBitmap()
将地图窗口中可见范围的内容输出为内存图片文件。当无界面出图时,出图范围需要根据设置setImageSize()来确定。
public BufferedImage outputMapToBitmap(boolean isBackTransparent)
将地图窗口中可见范围的内容输出为内存图片文件。当无界面出土时,出图范围需要根据设置setImageSize()来确定。
isBackTransparent
- 是否背景透明。public boolean ensureVisible(Geometry geometry)
geometry
- 要全幅显示的空间对象。
public void ensureVisibleTest() {
// 打开数据源
Workspace workspace = new Workspace();
String path = "G:/World";
DatasourceConnectionInfo dsConnectionInfo = new
DatasourceConnectionInfo(path + "\\world.udb", "world", "");
Datasource datasource = workspace.getDatasources().open(
dsConnectionInfo);
// 获取数据集
DatasetVector datasetVector = (DatasetVector) datasource.getDatasets().
get(0);
// 在地图中打开数据集
Map map = new Map(workspace);
map.getLayers().add(datasetVector, true);
// 返回数据集中给定ID的对象
int[] id = new int[] {1, 2, 3, 4, 5};
Recordset recordset = datasetVector.query(id, CursorType.STATIC);
Geometry geometry = recordset.getGeometry();
// 全幅显示该对象
map.ensureVisible(geometry);
map.refresh();
}
public boolean ensureVisible(Geometry geometry, double ratio)
geometry
- 要全幅显示的空间对象。ratio
- 显示比率,默认值为 1.0,该比率对点对象无效。public boolean ensureVisible(Recordset recordset)
recordset
- 需要全幅显示的几何对象所对应的记录集。public boolean ensureVisible(Recordset recordset, double ratio)
recordset
- 需要全幅显示的几何对象所对应的记录集。ratio
- 指定的显示比率,默认值为 1.0,该比率对点对象无效。假设打开了一个工作空间 workspace
对象,工作空间中存在一幅地图。
public void ensureVisible2Test() {
// 打开工作空间中的地图
Map map = new Map(workspace);
map.open(workspace.getMaps().get(0));
// 设定显示比率
double ratio = 1.0;
String queryString = "smid>=5";
// 从地图中的给定图层中按照给定的查询条件查询得到记录集
Layer layer = map.getLayers().get(0);
DatasetVector dataset = (DatasetVector) layer.getDataset();
Recordset recordset = dataset.query(queryString, CursorType.STATIC);
// 按照给定比率显示得到的记录集
map.ensureVisible(recordset, ratio);
map.refresh();
// 释放资源
map.dispose();
recordset.dispose();
workspace.dispose();
}
public boolean ensureVisible(Layer layer)
layer
- 需要全幅显示的图层。public boolean ensureVisible(Layer layer, double ratio)
layer
- 需要全幅显示的图层。ratio
- 指定的显示比率,默认值为 1.0,该比率对点对象无效。假设打开了一个工作空间 workspace
对象,工作空间中存在一幅地图。
public void ensureVisible3Test() {
// 打开工作空间中的地图
Map map = new Map(workspace);
map.open(workspace.getMaps().get(0));
// 设定显示比率
double ratio = 1.0;
// 获取地图中的给定的图层
Layer layer = map.getLayers().get(0);
// 按照给定比率显示该图层
map.ensureVisible(layer, ratio);
map.refresh();
// 释放资源
map.close();
map.dispose();
workspace.dispose();
}
public boolean open(String name)
name
- 地图名称。public void close()
public Selection[] findSelection(boolean hasGeometrySelected)
hasGeometrySelected
- 指定返回的选择集是所有图层的还是有选择对象的图层的。当其为 true 时,返回所有有选择对象的图层的选择集,否则返回所有图层的选择集。public boolean outputMapToBMP(String fileName)
fileName
- 导出的 BMP 文件的名称。Map.outputMapToJPG()
方法的示例。public boolean outputMapToJPG(String fileName)
注意:当比例尺为无穷大(即 getScale()
方法的返回值为 0)时出图失败。
将地图窗口中可见范围的内容输出为JPG文件。当无界面出图时,出图范围需要根据设置setImageSize()来确定。
fileName
- 导出的 JPG 文件的名称。假设打开了一个工作空间 workspace
对象,工作空间中存在一幅地图。
public void outputMapToJPGTest() {
// 打开工作空间里面的地图
Map map = new Map(workspace);
map.open(workspace.getMaps().get(0));
// 输出地图为 JPG 文件
String outputFileJPG = "c:/temp/outputTest.jpg";
map.outputMapToJPG(outputFileJPG);
// 输出地图为 PNG 文件
String outputFilePNG = "c:/temp/outputTest.png";
map.outputMapToPNG(outputFilePNG, true);
// 输出地图为 BMP 文件
String outputFileBMP = "c:/temp/outputTest.bmp";
map.outputMapToBMP(outputFileBMP);
// 输出地图为 EMF 文件
String outputFileEMF = "c:/temp/outputTest.emf";
map.outputMapToEMF(outputFileEMF);
// 释放资源
map.dispose();
}
public boolean outputMapToPNG(String fileName, boolean isBackTransparent)
将地图窗口中可见范围的内容输出为PNG文件。当无界面出图时,出图范围需要根据设置setImageSize()来确定。
注意:1.当比例尺为无穷大(即 getScale()
方法返回值为 0)时出图失败。
注意:2.设置输出的图片背景色透明时,如果计算机的颜色质量设置为中(16位)时, 输出图片的背景色为黑色而非透明;如果设置为最高(32位)时,输出的图片背景色为透明的。
fileName
- 导出的 PNG 文件的名称。isBackTransparent
- 表示背景色是否透明。Map.outputMapToJPG()
方法的示例。public boolean outputMapToWEBP(String fileName, boolean isBackTransparent)
fileName
- 文件路径isBackTransparent
- 是否背景透明IllegalStateException
- 当前对象已被释放public boolean outputTrackingLayerToPNG(String fileName, boolean isBackTransparent)
注意:当比例尺为无穷大(即 getScale()
方法返回值为 0)时出图失败。
fileName
- 导出的 PNG 文件的名称。isBackTransparent
- 表示背景色是否透明。假设打开了一个工作空间 workspace
对象,工作空间中存在一幅地图。
public void outputTrackingLayerToPNGTest() {
// 打开工作空间中的地图
Map map = new Map(workspace);
map.open(workspace.getMaps().get(0));
//获取地图中的给定的图层,并返回图层中所有的记录集
Layer layer = map.getLayers().get(0);
DatasetVector datasetVector = (DatasetVector) layer.getDataset();
Recordset recordset = datasetVector.getRecordset(false,
CursorType.STATIC);
recordset.moveFirst();
//返回记录集中的几何对象,并添加到跟踪图层中
for (int i = 0; i < recordset.getRecordCount(); i++) {
Geometry geometry = recordset.getGeometry();
map.getTrackingLayer().add(geometry, String.valueOf(i));
recordset.moveNext();
}
// 将跟踪图层中的地图导出为 PNG 文件
String outputFilePNG = "c:/temp/OutputTrackinglayerToPNGTest.png";
map.outputTrackingLayerToPNG(outputFilePNG, false);
// 释放资源
map.dispose();
recordset.dispose();
}
public boolean outputTrackingLayerToPNG(String fileName, boolean isBackTransparent, int dpi, Rectangle2D bounds)
fileName
- 指定的文件名。isBackTransparent
- 是否背景透明。dpi
- 指定的 dpi。bounds
- 指定的出图的地理范围。public boolean outputScreenLayerToPNG(String fileName, boolean isBackTransparent)
fileName
- 指定的文件名。isBackTransparent
- 是否背景透明。public boolean outputScreenLayerToPNG(String fileName, boolean isBackTransparent, int dpi, Rectangle2D bounds)
fileName
- 指定的文件名。isBackTransparent
- 是否背景透明。dpi
- 指定的 dpi。bounds
- 指定的出图的地理范围。public boolean outputMapToFile(String fileName, ImageType type, boolean isBackTransparent)
将地图窗口中可见范围的内容输出为图片文件。当无界面出图时,出图范围需要根据设置setImageSize()来确定。
fileName
- 输出文件的全路径。type
- 出图的图片类型。isBackTransparent
- 是否背景透明。该参数仅在 type 参数设置为 GIF 和 PNG 类型时有效。public boolean outputMapToFile(String fileName, ImageType type, int dpi, Rectangle2D bounds, boolean isBackTransparent)
将地图窗口中可见范围的内容输出为图片文件。当无界面出图时,出图范围需要根据设置setImageSize()来确定。
带 DPI 参数的出图支持四种格式:BMP、JPG、PNG、TIFF。PNG格式不支持过大分辨率的出图。
fileName
- 输出文件的全路径。type
- 出图的图片类型。dpi
- 设置出图的分辨率。bounds
- 设置出图的范围。isBackTransparent
- 是否背景透明。该参数仅在 type 参数设置 PNG 类型时有效。public DatasetImage outputMapToDatasetImage(Datasource datasource, String datasetName, double resolution, Rectangle2D bounds, EncodeType encodeType)
datasource
- 生成的影像数据集存放的数据源。datasetName
- 生成的影像数据集的名称。resolution
- 生成的影像数据集的分辨率。bounds
- 生成的影像数据集的输出范围。encodeType
- 生成的影像数据集的编码方式。@Deprecated public boolean outputMapToEPS(String fileName)
将地图窗口中可见范围的内容输出为 EPS 文件。当无界面出图时,出图范围需要根据设置setImageSize()来确定。
注意:当比例尺为无穷大(即 getScale()
方法返回值为 0)时出图失败。
EPS 输出仅支持 windows 自带填充, 不支持半透明填充和渐变填充,中文字体输出可能为乱码,通过 Illustrator 等绘图软件进行修改字体,然后保存即可。
fileName
- 导出的 EPS 文件的名称。@Deprecated public boolean outputMapToGIF(String fileName, boolean isBackTransparent)
将地图窗口中可见范围的内容输出为GIF文件。当无界面出图时,出图范围需要根据设置setImageSize()来确定。
注意:当比例尺为无穷大(即 getScale()
返回值为 0)时出图失败。
fileName
- 导出的 GIF 文件的名称。isBackTransparent
- 表示背景色是否透明。public void zoom(double ratio)
ratio
- 缩放地图比例,此值不可以为负。public void pan(double offsetX, double offsetY)
offsetX
- X 方向上的移动距离,单位为坐标单位。offsetY
- Y 方向上的移动距离,单位为坐标单位。public Point mapToPixel(Point2D point)
setImageSize()
方法之后才能正常工作。point
- 要转换坐标的指定点。
public void mapControl_MouseDown(MouseEvent e) {
// 获取鼠标点
java.awt.Point pointMouse = new java.awt.Point(e.getX(), e.getY());
// 将地图中指定点的像素坐标转换为地图坐标
Point2D point = mapControl.getMap().pixelToMap(pointMouse);
// 显示鼠标点的地理坐标
System.out.println("点的坐标为:" + point.getX() + "," + point.getY());
}
public Point2D mapToLogical(Point2D point)
point
- 要转换坐标的指定点。public Point2D logicalToMap(Point2D point)
point
- 要转换坐标的指定点。public Point logicalToPixel(Point2D point)
point
- 要转换坐标的指定点。public Point2D pixelToLogical(Point point)
point
- 要转换坐标的指定点。public Point2D pixelToMap(Point point)
setImageSize()
方法之后才能正常工作。point
- 要转换坐标的指定点。public void refresh()
public void refreshWithSnapshot()
public void refreshTrackingLayer()
public void refreshEx(Rectangle2D rect)
rect
- 指定的范围。public void viewEntire()
public boolean fromXML(String xml)
任何地图都可以导出成 xml 字符串,而地图的 xml 字符串也可以导入成为一个地图来显示。地图的 xml 字符串中存储了关于地图及其图层的显示设置以及关联的数据信息等。此外,可以将地图的 xml 字符串保存成一个 xml 文件。
xml
- 用来创建地图的 xml 字符串。Map.toXML()
方法的示例。public boolean fromXML(String xml, WorkspaceVersion version)
任何地图都可以导出成 xml 字符串,而地图的 xml 字符串也可以导入成为一个地图来显示。地图的 xml 字符串中存储了关于地图及其图层的显示设置以及关联的数据信息等。此外,可以将地图的 xml 字符串保存成一个 xml 文件。
xml
- 用于创建地图对象的 XML 字符串。version
- xml 内容所对应的工作空间的版本。使用该参数时,请确保指定的版本与 xml 内容相符。若不相符,可能会导致部分图层的风格丢失。public String toXML()
任何地图都可以导出成 xml 字符串,而地图的 xml 字符串也可以导入成为一个地图来显示。地图的 xml 字符串中存储了关于地图及其图层的显示设置以及关联的数据信息等。此外,可以将地图的 xml 字符串保存成一个 xml 文件。
假设打开了一个工作空间 workspace
对象,工作空间中存在一幅地图。
public void toAndFromXMLTest() {
// 打开工作空间中的地图
Map map = new Map(workspace);
map.open(workspace.getMaps().get(0));
// 将地图导出为 XML 字符串
String xml = map.toXML();
map.close();
// 通过导入 xml 字符串创建地图
map.fromXML(xml);
// 将地图输出为 PNG 文件
map.outputMapToPNG(path + "\\mapPNG.png", true);
//释放资源
map.dispose();
}
public void dispose()
public boolean isOrthographView()
public void setOrthographView(boolean value)
value
- 用于控制地图是否以正射投影方式显示。public boolean isDisableDynamicEffect()
public void setDisableDynamicEffect(boolean value)
当关闭地图的动态效果(setDisableDynamicEffect(true))时,其地图下的统计专题图或标签专题图图层的流动显示和自动避让效果将无效,即ThemeGraph/ThemeLabel.setFlowEnable(true) 或 ThemeGraph/ThemeLabel.setOverlapAvoided(true)无效果。
value
- 一个布尔值,true 表示关闭地图动态效果,false 表示不关闭地图动态效果。public boolean isDisableAutoAvoidEffect()
public void setDisableAutoAvoidEffect(boolean value)
value
- 一个布尔值,指示是否在出图的时候关掉地图的自动避让效果,true表示关闭自动避让效果;false表示不关闭。public String getHashCode(ImageType imageType)
imageType
- HashCode 对应的图片类型。public boolean isInflateBounds()
IllegalStateException
- 当前对象已被释放public void setInflateBounds(boolean value)
value
- 是否扩大IllegalStateException
- 当前对象已被释放public void addDrawingListener(MapDrawingListener l)
MapDrawingEvent
)的监听器。l
- 一个用于接收地图绘制操作事件的监听器。public void removeDrawingListener(MapDrawingListener l)
MapDrawingEvent
)的监听器。l
- 一个用于接收地图绘制操作事件的监听器。public void addDrawnListener(MapDrawnListener l)
MapDrawnEvent
)的监听器。l
- 一个用于接收地图绘制结束事件的监听器。public void removeDrawnListener(MapDrawnListener l)
MapDrawnEvent
)的监听器。l
- 一个用于接收地图绘制结束事件的监听器。public void addDrawContinuingListener(MapDrawContinuingListener l)
MapDrawContinuingEvent
)的监听器。l
- 一个用于接收地图绘制继续事件的监听器。public void removeDrawContinuingListener(MapDrawContinuingListener l)
MapDrawContinuingEvent
)的监听器。l
- 一个用于接收地图绘制继续事件的监听器。public void addSteppedListener(SteppedListener l)
SteppedEvent
)的监听器。l
- 一个用于接收地图输出为影像数据集进度的监听器。public void removeSteppedListener(SteppedListener l)
SteppedEvent
)的监听器。l
- 一个用于接收地图输出为影像数据集进度的监听器。public void addTrackingLayerDrawingListener(TrackingLayerDrawingListener l)
TrackingLayerDrawingEvent
)的监听器。l
- 一个用于接收绘制跟踪图层事件的监听器。public void removeTrackingLayerDrawingListener(TrackingLayerDrawingListener l)
TrackingLayerDrawingEvent
)的监听器。l
- 一个用于接收绘制跟踪图层事件的监听器。public void addTrackingLayerDrawnListener(TrackingLayerDrawnListener l)
TrackingLayerDrawnEvent
)的监听器。l
- 一个用于接收绘制跟踪图层结束事件的监听器。public void removeTrackingLayerDrawnListener(TrackingLayerDrawnListener l)
TrackingLayerDrawnEvent
)的监听器。l
- 一个用于接收绘制跟踪图层结束事件的监听器。public void addMapOpenedListener(MapOpenedListener l)
MapOpenedEvent
)的监听器。l
- 一个用于接收地图打开事件的监听器。public void removeMapOpenedListener(MapOpenedListener l)
MapOpenedEvent
)的监听器。l
- 一个用于接收地图打开事件的监听器。public void addMapClosedListener(MapClosedListener l)
MapClosedEvent
)的监听器。l
- 一个用于接收地图关闭事件的监听器。public void removeMapClosedListener(MapClosedListener l)
MapClosedEvent
)的监听器。l
- 一个用于接收地图关闭事件的监听器。public MapControl getMapControl()
public boolean isFillMarkerAngleFixed()
public void setFillMarkerAngleFixed(boolean value)
value
- 是否固定填充符号的填充角度。public boolean isSymbolFillIgnored()
地图支持忽略符号填充时则只绘制填充区域的背景色,不进行符号的绘制。
该方法对位图填充设置无效。
public void setSymbolFillIgnored(boolean value)
value
- 一个布尔值,true 表示忽略符号填充,false 表示不忽略符号填充。public ChartSetting getChartSetting()
public boolean isContainLayerChart()
public boolean isUseSystemDPI()
public void setUseSystemDPI(boolean value)
public double getDPI()
public void setDPI(double value)
public boolean isCompatibleFontHeight()
7.1版本去除SuperMap.xml中的IsSupportClearType节点信息,以及废弃Environment .IsClearTypeSupported 接口。改为地图的方法(Map.IsCompatibleFontHeight()和Map.setCompatibleFontHeight()),表示是否为兼容模式下的字,为false时与SuperMap GIS 7C及6R字体大小一样,为true时与Micorsoft Office World 等软件字体大小相同,表现为false时文字会小一些,true时文字会大一些。
public void setCompatibleFontHeight(boolean value)
7.1版本去除SuperMap.xml中的IsSupportClearType节点信息,以及废弃Environment .IsClearTypeSupported 接口。改为地图的方法(Map.IsCompatibleFontHeight()和Map.setCompatibleFontHeight()),表示是否为兼容模式下的字,为false时与SuperMap GIS 7C及6R字体大小一样,为true时与Micorsoft Office World 等软件字体大小相同,表现为false时文字会小一些,true时文字会大一些。
value
- 一个布尔值,表示是否为兼容模式下的字。public boolean isGraphicsAlphaEnable()
当在新建的地图中第一次添加图层时,如果添加的图层为矢量数据图层,地图的Alpha通道自动开启,即该接口的值为true;如果添加的图层是影像或者栅格图层时,地图的Alpha通道自动关闭,来提高地图的显示效率,即该接口的值为false。
public void setGraphicsAlphaEnable(boolean value)
value
- 一个布尔值,指示地图是否使用了Alpha通道。true表示使用;false表示未使用Alpha通道。public DynamicLayers getDynamicLayers()
public BookMarks getBookMarks()
public boolean getTileZoomInCacheEnable()
IllegalStateException
- 当前对象已被释放public void setTileZoomInCacheEnable(boolean bEnable)
bEnable
- 是否开启IllegalStateException
- 当前对象已被释放public int getTileRefreshIntervals()
IllegalStateException
- 当前对象已被释放public void setTileRefreshIntervals(int nTime)
nTime
- 时间(毫秒)IllegalStateException
- 当前对象已被释放public boolean isTempCacheFileEnable()
IllegalStateException
- 当前对象已被释放public void setTempCacheFileEnable(boolean value)
value
- 是否启用IllegalStateException
- 当前对象已被释放public TimeSpan getTimeStep()
IllegalStateException
- 当前对象已被释放public void setTimeStep(TimeSpan timeStep)
Layer.getTimeStepInterval()
和Map.getTimeStep()
都表示时间步长间隔,两者的区别在于:
Map.getTimeStep()用于控制地图播放显示时态数据的时间间隔,不管地图中各图层的时间步长间隔(Layer.getTimeStepInterval()
)的值为多少。
Layer.getTimeStepInterval()
可以描述图层对象的采集时间间隔;也可以计算Map.getTimeStep()
默认值,计算由Map.getMinTimeStep()
方法实现,具体为:若地图中包含多个启用时间的图层,并且各图层的时间步长间隔(Layer.getTimeStepInterval()
)值不同,Map.getMinTimeStep()方法返回最小的图层时间步长间隔。
timeStep
- 播放时态数据的时间步长间隔。public TimeSpan getTimeWindow()
public void setTimeWindow(TimeSpan timeWindow)
默认情况下,时间窗的值为0。当前帧显示的时间范围与时间窗有关,具体参见:Map.getCurrentPlayerTick()
接口的描述。
timeWindow
- 播放时态数据的时间窗。public int getCurrentPlayerTick()
下面介绍如何计算当前帧播放的时间范围,地图将依据该范围去过滤显示所有启用时间的图层对象,从而确定当前帧的显示内容。
1.基于当前的播放参数设置,计算播放的总帧数:
总帧数=时间线的起止时间差/时间步长间隔=(getMapEndTime()
-getMapStartTime()
)/getTimeStep()
2.总帧数相当于对时间线均匀地划分时间刻度,刻度间隔为getTimeStep()
,确定当前帧所指的时间刻度:
当前帧的时间刻度=时间线的起始时间+帧数*时间步长间隔=getMapStartTime()
+getTimeStep()
*getCurrentPlayerTick()
3.当前帧可显示的时间并非时间刻度的值而是一段时间,当前帧的时间范围计算如下:
若时间窗设置为0,当前帧时间范围为:(当前帧的时间刻度,当前帧的时间刻度+时间步长间隔];
若时间窗为非0值,当前帧时间范围为:(当前帧的时间刻度-时间窗,当前帧的时间刻度+时间步长间隔]。
public void setCurrentPlayerTick(int currentTick)
currentTick
- 当前地图播放显示的帧的序号。public Date getMapStartTime()
public void setMapStartTime(Date startTime)
时间线的起止时间默认值,可以使用方法Map.getDefaultMapStartTime()
和Map.getDefaultMapEndTime()
计算获得,该方法遍历所有启用时间且可见的图层的时间字段,取时间值的最小和最大值分别作为时间线的起止时间。
startTime
- 地图播放显示时态数据的时间线长度的起始时间值。public Date getMapEndTime()
public void setMapEndTime(Date endTime)
时间线的起止时间默认值,可以使用方法Map.getDefaultMapStartTime()
和Map.getDefaultMapEndTime()
计算获得,该方法遍历所有启用时间且可见的图层的时间字段,取时间值的最小和最大值分别作为时间线的起止时间。
endTime
- 地图播放显示时态数据的时间线长度的终止时间值。public boolean isTimeEnable()
@Deprecated public boolean IsTimeEnable()
public void setTimeEnable(boolean bEnable)
地图播放显示时态数据的实质是通过时间过滤条件过滤显示图层对象。
地图播放显示的时态数据图层必须启用时间,并完成时间相关设置,具体参见Layer对象中时间相关接口。
下文描述地图播放显示时态数据的具体过程:
首先,在Map对象中指定播放数据的时间范围(时间线起止时间)、时间步长间隔、时间窗,并可以根据这些设置参数计算获得当前地图播放时态数据的总帧数。
然后,确定地图当前帧显示的对象内容:
1.确定地图显示的当前帧(Map.getCurrentPlayerTick()
);
2.根据时间步长间隔(Map.getTimeStep()
)、时间窗(Map.getCurrentPlayerTick()
)、时间线起始时间(Map.getMapStartTime()
和Map.getMapEndTime()
),计算当前帧的起止时间;
3.当前帧的起止时间传入启用时间的Layer对象,即分别赋值给Layer.setTimeFilterStarting()
和Layer.setTimeFilterEnding()
。
4.根据Layer对象的getTimeFilterStarting()
和getTimeFilterEnding()
返回值,构成时间过滤条件(getTimeFilterStarting(),getTimeFilterEnding()]来过滤显示图层对象,具体为:判断图层对象时间值构成的时间区间[Layer.getTimeStartField()
() getTimeStartField()},Layer.getTimeEndField()
() getTimeEndField()}]是否与查询时间条件有交集,若有对象显示,否则,对象不显示。
由此,实现Map对象按照某时间序列播放显示时态数据的效果,方便查看数据随时间推移而呈现出的模式或变化趋势。
地图中那些启用时间且可见的图层才能播放显示,并且相关参数的计算也基于这些图层。
bEnable
- 是否启用时间播放public Date getDefaultMapStartTime()
public Date getDefaultMapEndTime()
public TimeSpan getMinTimeStep()
public String getTimeFormat()
public void setTimeFormat(String timeFormat)
当时态数据播放时,地图窗口可以显示当前播放帧的时间范围,例如当前播放帧的起止时间为:2018/6/1 13:30:10 到 2018/6/1 14:00:10,可以通过设置使地图窗口显示出:时间:2018年6月1日 13时30分10 秒 到 2018年6月1日 14时00分10秒,从而展示每一帧所显示数据的时间范围。关于窗口所显示的时间的格式,可以由用户自定义,如:2018/6/1 13:30:10、2018-6-1、2018年6月1日、13时30分,下文将详细介绍该方法传入的时间格式字符串如何构造。
1. 地图窗口仅显示日期。
日期中的年份使用“YYYY”或者“YY”作为格式化字符,系统遍历该方法传入的字符串,如果含有“YYYY”或者“YY”,在显示时间时,将使用当前帧时间范围中的年份去替换这两个字符串,其中:“YYYY”替换为四位数的年份,而“YY”则取年份的后两位数替换。
同理,日期中的月份使用“MM”作为格式化字符,为两位数的月份;日期中的日使用“DD”作为格式化字符,为两位数的日。
2. 地图窗口仅显示时间。
时间中的小时使用“hh”作为格式化字符串,系统遍历该方法传入的字符串,如果含有“hh”,在显示时间时,将使用当前帧时间范围中的小时数去替换该字符串,小时数的表达采用24小时制。
同理,时间中的分钟使用“mm”作为格式化字符;时间中的秒使用“ss”作为格式化字符。
3. 地图窗口同时显示日期和时间,使用上述格式化字符构造日期和时间的组合方式。
【注意】时间格式化字符的大小写必须严格遵守上述的内容。
上述描述了如何格式化时间,其实质就是:系统对于该方法传入的字符串,除了将上述的时间格式化字符替换为相应的时间数值外,所有非时间格式化字符都将直接显示。
【注意】时间格式字符串中不支持添加“%”和“\”特殊字符。
timeFormat
- 指定显示时间的格式。public TextPosition getTimeTextPosition()
public void setTimeTextPosition(TextPosition timeTextPosition)
地图窗口显示的时间文本可以选择在如下窗口9种位置中的任意一个位置显示。
时间文本显示时,文本的锚点将与上述窗口的9个位置中指定的位置对齐,并且此时,文本的锚点与文本的相对位置也需保持一致。例如:如果选择时间文本在窗口底部居中的位置显示,那么文本的锚点与文本的对齐方式应为中下点对齐,即文本的锚点位于文本外接矩形的中下点。
timeTextPosition
- 指定窗口所显示的时间文本的位置。public boolean isShowTime()
public void setIsShowTime(boolean isShowTime)
当时态数据播放时,地图窗口可以显示当前播放帧的时间范围,例如当前播放帧的起止时间为:2018/6/1 13:30:10 到 2018/6/1 14:00:10,可以通过设置使地图窗口显示出:时间:2018年6月1日 13时30分10 秒 到 2018年6月1日 14时00分10秒,从而展示每一帧所显示数据的时间范围。关于窗口所显示的时间的格式,可以由用户自定义,如:2018/6/1 13:30:10、2018-6-1、2018年6月1日、13时30分,自定义时间格式请参见:Map.setTimeFormat()
。
isShowTime
- 一个布尔值,指示时态数据播放显示时,窗口是否显示当前帧的时间范围的文本,true表示显示,false表示不显示。public TextStyle getTimeTextStyle()
public void setTimeTextStyle(TextStyle timeTextStyle)
timeTextStyle
- 时间文本的样式。public boolean isDebugMode()
public void setDebugMode(boolean value)
value
- 是否调试模式public boolean isMapThreadDrawingEnabled()
public void setMapThreadDrawingEnabled(boolean value)
value
- 一个布尔值,指示是否另启线程绘制地图元素,true表示另启线程绘制地图元素,可以提升大数据量地图的绘制性能。public static boolean isMapProfileingEnable()
public static void setMapProfileingEnable(boolean value)
value
- 是否开启地图的性能信息收集,true表示开启。public String getLastProfilingResult()
返回地图性能分析的结果。如果Bin目录下的SuperMap.xml中"MapProfilesSetting"项下的IsToFile设置为true,则性能分析的结果字符串将输出到组件Bin目录下的log文件夹,结果为一个xml文件。
该接口只有在组件Bin目录下的SuperMap.xml中"MapProfilesSetting"项下的IsEnabled属性设置为true时才有效,才有输出性能分析内容,否则输出为空。
public static void setDatasetToBeUpdated(Dataset dataset)
public LabelAvoidWeightInfos getMapLabelAvoidWeightInfos()
public String getExternalXML()
public void setExternalXML(String enternalXML)
enternalXML
- 扩展XML字符串IllegalArgumentException
- 非法参数public boolean isFullLabel()
public void setFullLabel(boolean value)
public void setPreLoadWebCache(int seconds)
seconds
- 缓存时间public boolean isMapOutputFull()
public void setMapOutputFull(boolean value)
public boolean isDrawTextAtLast()
public void setDrawTextAtLast(boolean value)
如果希望标签图层最后绘制,来避免被其他图层(如点符号、统计符号等压盖),需要将标签图层最后绘制
value
- 是否标签图层最后绘制public boolean isTextLayerReverse()
如果希望越上层的标签图层先绘制来避免被其他图层压盖而导致不显示,需要将标签绘制是否反序设置为true
public void setTextLayerReverse(boolean value)
如果希望越上层的标签图层先绘制来避免被其他图层压盖而导致不显示,需要将标签绘制是否反序设置为true
value
- 是否反序public Rectangle2D measureText(String text, TextStyle style)
使用GeoText.getBounds()方法也可以获得地图中文本的宽高范围,但是,此方法获得的范围精确度不高,并且地图中对于文本风格的设置也会影响文本的实际范围,因此,Map.measureText() 方法可以精确获得在当前地图风格设置和绘制条件下的文本范围。
因此,Map.measureText() 方法正确执行的关键必须保证地图对象已打开地图,并能正常出图或绘制正确。Map.measureText() 方法返回结果为高精度矩形类型,代表在当前地图环境下,传入的文本内容(text 参数)在指定文本风格条件(style 参数)下,以地图坐标原点为起始点(固定为左上角对齐)占用的地理范围,单位为当前地图单位。
Map.measureText() 方法将忽略风格中的角度和排版,需要外部自己实现旋转和偏移。
如:EPSG 4326坐标系的地图使用下面的代码计算,返回结果为Left=0.09515457098993352,Bottom=-4.5364979297035575,Right=7.40361354856762,Top=-1.516302597899596
text
- 待计算精确范围的文本。style
- 文本在指定的风格下计算精确范围,该参数将指定文本的风格。
TextStyle style = new TextStyle();
style.setSizeFixed(true);
style.setFontHeight(10);
style.setFontName("微软雅黑");
Rectangle2D bounds = map.measureText("test", style);
Copyright © 2021–2024 SuperMap. All rights reserved.