maptalks绘制图形工具类DrawTool开启和关闭地图的图形事件,DistanceTool,测距,AreaTool,测面都是DrawTool的子类

maptalks绘制图形工具类DrawTool开启和关闭地图的图形事件,DistanceTool(测距),AreaTool(测面)都是DrawTool的子类

绘制方面,maptalks里提供了DrawTool类

vardrawTool=newmaptalks.DrawTool({mode:"Point",//once:true,}).addTo(map).disable();

DistanceTool(测距),AreaTool(测面)都是 DrawTool的子类

具体使用方法可以参考 Draw tool to draw geometries 例子

在我们平时绘制图形是遇到的问题有:

怎样设置绘制图形的样式

当绘制图形,可能期望关闭图形的事件,不希望绘制时触发图形的一些事件,比如绘制时因为鼠标点击了地图上已经存在的图形而触发这个图形的click事件

functionupdateGeometrySymbol(geometry){constmode=drawTool.getMode();if(mode==="linestring"){geometry.setSymbol({lineColor:"red",markerType:"ellipse",markerWidth:10,markerHeight:10,markerPlacement:"vertex",});}if(mode==="polygon"){geometry.setSymbol({polygonFill:"white",polygonOpacity:0.7,lineColor:"blue",lineWidth:2,markerType:"ellipse",markerWidth:10,markerHeight:10,markerFill:"red",markerPlacement:"vertex",});}if(mode==="point"){geometry.setSymbol({markerType:"ellipse",markerWidth:10,markerHeight:10,markerFill:"red",});}}//绘制开始事件drawTool.on("drawstart",function(param){//设置绘制图形时,图形的样式updateGeometrySymbol(param.tempGeometry);});绘制时关闭图形的事件,避免绘制时突然弹出一些信息框等//禁用事件drawTool.on("disable",function(param){//开启地图的图形事件map.config("geometryEvents",true);});//启用事件drawTool.on("enable",function(param){//关闭地图的图形事件map.config("geometryEvents",false);});

调整绘制图层的层级(zIndex)

该特性要求maptalks版本 version>v1.0.0-rc.25

绘制图层的默认层级(zIndex)是Number.MAX_VALUE,如果需要调整其层级可以:

设置options.zIndex

vardrawTool=newmaptalks.DrawTool({mode:"Point",zIndex:10,}).addTo(map).disable();通过setLayerZIndex(zIndex)来设置vardrawTool=newmaptalks.DrawTool({mode:"Point",zIndex:10,}).addTo(map).disable();drawTool.setLayerZIndex(10);

每次绘制完清空上一次的绘制结果

该特性要求maptalks版本 version>v1.0.0-rc.25

DrawTool里有个drawprepare事件,表示预备绘制ing,其发生在drawstart之前,你可以监听这个事件在对绘制drawtool的绘制结果 进行清空

vardrawTool=newmaptalks.DrawTool({mode:"Point",zIndex:10,}).addTo(map).disable();drawTool.on("drawprepare",()=>{drawTool.clear();});
评论可见,查看隐藏内容

na.png

本网站文章未经允许禁止转载,合作/权益/投稿 请联系平台管理员 Email:epebiz@outlook.com