Index

常见问题专题

目录

1.使用标绘与推演等专用功能需要引用的脚本库

2.标绘图层缩放基准启用和不启用的区别?

3.鼠标编辑标号时报错?

内容

1.使用标绘与推演等专用功能需要引用的脚本库

使用SuperMap mClient for Leaflet进行开发需要引用的脚本库有三个,分别是Leaflet开发框架脚本库、iClient-Leaflet脚本库、动态标绘与推演、动态目标等专用相关功能脚本库(iClient- plot-Leaflet)。

(1)Leaflet开发框架脚本库

在SuperMap mClient for Leaflet产品包中,提供不同版本的Leaflet脚本库和样式文件,位于SuperMap mClient for Leaflet产品包/web/libs/leaflet下。

<!--引用leaflet的css样式库、脚本库-->
<link href="libs/leaflet/1.7.1/leaflet.css" rel="stylesheet" />    
<script type="text/javascript"  src="libs/leaflet/1.7.1/leaflet.js"></script>
(2)iClient-Leaflet脚本库

在SuperMap mClient for Leaflet产品包中,iClient-Leaflet脚本库位于SuperMap mClient for Leaflet产品包/dist/leaflet下。

<!--引用iclient for leaflet的css样式库、脚本库-->
<link href="dist/leaflet/iclient-leaflet.css" rel="stylesheet" />    
<script type="text/javascript"  src="dist/leaflet/iclient-leaflet.js"></script>
(3)iClient- plot-Leaflet脚本库

在SuperMap mClient for Leaflet产品中,动态标绘与推演、动态目标等专用相关功能的插件位于:SuperMap mClient for Leaflet产品包/web/libs/plotting/leaflet/11.2.0下,其中11.2.0为产品版本号。

<!--引用标绘相关的css样式库、脚本库、算法库-->
<link href="libs/plotting/leaflet/11.2.0/iclient-plot-leaflet.css" rel="stylesheet" />    
<script type="text/javascript"  src="libs/plotting/leaflet/11.2.0/iclient-plot-leaflet.min.js"></script>
<script type="text/javascript"  src="libs/plotting/leaflet/11.2.0/iclient-plot-algorithms-jb.min.js"></script>  

另外,使用SuperMap mClient for Leaflet进行开发还需要使用动态标绘与推演、动目标等专用功能图片资源库。

(4)动态标绘与推演、动目标等专用功能图片资源库

在SuperMap mClient for Leaflet产品中,动态标绘与推演、动态目标等专用相关功能的资源图片位于:SuperMap mClient for Leaflet产品包/web/libs/plotting/leaflet/11.2.0/images下,其中11.2.0为产品版本号。explode文件夹为爆炸特效资源图片、plot文件夹为标绘与推演资源图片、sign文件夹为标牌资源图片。

专用功能图片资源

2.标绘图层缩放基准启用和不启用的区别?

标绘图层的缩放基准,默认是标绘图的缩放基准,为图层的基准比例尺。基准比例尺是标号按实际尺寸在地图上1:1显示时的比例尺。

缩放基准相关属性:

标绘图层类PlottingLayer提供是否开启图层缩放基准属性enableSymScale,默认为false;提供图层的缩放基准属性symScaleDefinition,默认为null,如要设置标绘图层的基准比例尺为1:500000,可设置图层的缩放基准symScaleDefinition为1/500000。

缩放基准相关接口:

标绘图层类PlottingLayer提供设置是否开启图层缩放基准的接口(enableSymScaleDefinition(enable))、获取图层的缩放基准接口(getSymScaleDefinition())、设置图层的缩放基准接口(setSymScaleDefinition(symScaleDefinition, displaySizeChange)),symScaleDefinition为图层的缩放基准(基准比例尺),displaySizeChange标识标号的显示尺寸是否变化;当displaySizeChange为true时,在地图上标号大小发生变化,保持标号的绝对尺寸,即保证标号在1:1 显示时的实际尺寸不变。当displaySizeChange为false时,在地图上看到的标号大小不变,保持标号与地图的相对关系,但这就会导致标号在 1:1 显示时的实际尺寸发生变化。

注意事项:

标绘图层的缩放基准与点标号的随图缩放(scaleByMap)、标号最大缩放比例(maxScale)、标号最小缩放比例(minScale)搭配使用,且三者的优先级为:标号最大/小缩放比例(maxScale、minScale)>点标号的随图缩放(scaleByMap)>标绘图层的缩放基准。

2.1启用缩放基准

当开启图层缩放基准时,设置基准比例尺才有效;若开启了图层缩放基准而未设置基准比例尺,则创建第一个标号时,默认当前地图比例尺为缩放基准。

启用缩放基准后,且设置标号随图缩放(scaleByMap)为true,则地图放大一倍,标号大小和标号线宽也放大一倍。

例如,基准比例尺为1:50万,一个点标号的高为3mm,该标号随地图缩放为true。那么当地图缩放到1:50万时,我们在地图上看到的标号高为3mm;地图放大到1:25万时,则标号被放大2倍,我们看到的标号大小为6mm,且标号线宽也跟着放大两倍。

启用缩放基准,且缩放地图后再次绘制标号,点标号大小和线宽会按照缩放后的大小和线宽进行绘制,线面标号线宽按照缩放后的线宽绘制。

注意: 若地图缩放到很大的级别,再次绘制标号会出现标号过大或线宽太粗导致标号满屏的现象。可以重新设定缩放基准(symScaleDefinition)或关闭缩放基准(plottingLayer.enableSymScale=false)后重新绘制标号。

举例说明

(1)、在map的zoom为3的时候启用缩放基准(plottingLayer.enableSymScale=true), 绘制两个指挥所,绘制时默认当前地图比例尺为缩放基准。设置红色指挥所的标号随图缩放(scaleByMap)为true;蓝色指挥所(scaleByMap)为false;

绘制标号

(2)、放大地图,此时zoom为4,地图被放大了两倍,则启用了缩放基准且设置随图缩放(scaleByMap)为true的红色指挥所的大小和线宽都放大了两倍,而启用了缩放基准但随图缩放(scaleByMap)为false的蓝色指挥所显示为固定大小,效果如下图。

第一次放大地图

(3)、再次绘制一个红色指挥所,因为此时启用了缩放基准,且点标号的随图缩放(scaleByMap)默认为true,所以绘制的指挥所大小与放大后的红色指挥所一致,如下图。

再次绘制

(4)、此时,再放大一次地图,zoom为5,地图被放大了两倍,红色的指挥所也被放大了两倍,此时红色指挥所较刚开始的默认大小被放大了4倍,在最大缩放比例(maxScale,默认为5)与标号最小缩放比例(minScale,默认为1)之间。

第二次放大地图

(5)、再次放大地图,zoom为6,地图被放大了两倍,理论上红色指挥所相应也被放大了两倍,此时红色指挥所较刚开始默认的大小被放大了8倍,超出了最大缩放比例(maxScale,默认为5),所以在地图上表现为红色指挥所并没有被放大8倍,实际显示为被放大5倍(maxScale,默认为5)的效果,如下图。

第三次放大地图

2.2不启用缩放基准

若不启用缩放基准,只设置标号随图缩放(scaleByMap)为true,则缩放地图时标号也跟随缩放,但标号线宽不跟着放大或缩小。且当再次绘制标号时,标号为默认大小。

举例说明

(1)、在map的zoom为3的时候不启用缩放基准(plottingLayer.enableSymScale=false), 绘制标号,且红色指挥所随图缩放(scaleByMap)为true;蓝色指挥所(scaleByMap)为false;

绘制标号

(2)、放大地图,此时zoom为4,地图被放大了两倍,则设置随图缩放(scaleByMap)为true的红色指挥所的大小放大了两倍,线宽没有变化;而随图缩放(scaleByMap)为false的蓝色指挥所显示为固定大小,效果如下图。

第一次放大地图

(3)、再次绘制一个红色指挥所,因为没有启用缩放基准,所以绘制的标号为默认标号大小,如下图。

再次绘制

(4)、此时,再放大一次地图,zoom为5,地图被放大了两倍,刚开始绘制的红色指挥所也被放大了两倍,此时红色指挥所较刚开始的默认大小被放大了4倍,在最大缩放比例(maxScale,默认为5)与标号最小缩放比例(minScale,默认为1)之间。

第二次放大地图

(5)、再次放大地图,zoom为6,地图被放大了两倍,理论上刚开始绘制的红色指挥所相应也被放大了两倍,此时红色指挥所较刚开始默认的大小被放大了8倍,超出了最大缩放比例(maxScale,默认为5),所以在地图上表现为红色指挥所没有被放大8倍,实际显示为被放大5倍(maxScale,默认为5)的效果,如下图:

第三次放大地图

2.3注意事项

若标号放大和缩小的倍数达到标号最大缩放比例(maxScale)和最小缩放比例(minScale),再次放大或缩小地图时,标号不再缩放。

若启用缩放基准,且设置标号随图缩放(scaleByMap)为false,则缩放基准对标号不起作用,缩放地图时标号始终为固定大小显示。

设置缩放基准时对底图的要求:只支持为SuperMap mServer 的 REST 地图服务底图上的标绘图层设置缩放基准。

3.鼠标编辑标号时报错

使用SuperMap mClient for Leaflet提供的态势标绘功能进行标号绘制后,选中标号进行鼠标编辑时报错,错误提示如下图所示:
鼠标编辑时报错

解决方法:在创建地图时需要设置路径在Canvas渲染器上渲染,即preferCanvas: true。

设置Canvas渲染