mars3d开发 ——移动端画线矢量数据注意事项

简介:

在使用mars3d进行移动端开发项目中,绘制线矢量数据和在PC端有很大不同点。主要体现在PC端可以通过鼠标双击 ,确定 线已经绘制完成,移动端没有双击。
解决办法:在移动端想要结束绘制,需要调用endDraw()方法
具体实现代码:

绘制

export function addLine() {
  return graphicLayer
    .startDraw({
      name: "mars3d Demo",
      type: "polyline",
      style: {
        color: "#ffff00",
        width: 3,
        clampToGround: false
      }
    })
    .then((graphic: mars3d.graphic.PolylineEntity) => {
        return graphic
      }
    })
}

二、触发开始绘制这个函数后,无法结束绘制,如果想结束绘制就需要调用endDraw()方法

graphicLayer.endDraw()

注意点:在清除时需要将图层也一并清除,因为只要我们开始绘制线,无论是否绘制完成即调用endDraw()方法,地图上都会有矢量数据。
清除方法:

 if (graphic) {
    graphic.remove(true)
    graphic= null
  }
  graphicLayer.clear()```

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 SVG 绘制矩形非常简单,只需要使用 SVG 的 `<rect>` 元素即可。 以下是一个简单的例子,展示如何使用 SVG 绘制一个矩形: ```html <svg width="100" height="100"> <rect x="10" y="10" width="80" height="80" fill="blue" /> </svg> ``` 上面的代码会在 SVG 中绘制一个蓝色的矩形,宽度和高度均为 80,位置在 (10, 10) 处。 如果你想要让用户通过点击鼠标来绘制矩形,那么你需要使用 JavaScript 监听鼠标事件,并在事件处理函数中绘制矩形。 以下是一个使用 JavaScript 绘制矩形的例子: ```html <svg width="100" height="100" onmousedown="startDraw(event)" onmousemove="draw(event)" onmouseup="endDraw()"> <rect id="rect" x="0" y="0" width="0" height="0" fill="blue" /> </svg> <script> var rect = document.getElementById("rect"); var startX, startY; function startDraw(event) { startX = event.clientX; startY = event.clientY; rect.setAttribute("x", startX); rect.setAttribute("y", startY); } function draw(event) { if (startX !== undefined && startY !== undefined) { var width = event.clientX - startX; var height = event.clientY - startY; rect.setAttribute("width", Math.abs(width)); rect.setAttribute("height", Math.abs(height)); if (width < 0) { rect.setAttribute("x", startX + width); } if (height < 0) { rect.setAttribute("y", startY + height); } } } function endDraw() { startX = undefined; startY = undefined; } </script> ``` 上面的代码会在 SVG 中绘制一个可以通过鼠标拖拽绘制的蓝色矩形。当用户按下鼠标时,会记录鼠标的位置,并在 SVG 中设置一个矩形的起始位置。当用户拖拽鼠标时,会根据鼠标的位置计算出矩形的宽度和高度,并设置矩形的大小和位置。当用户松开鼠标时,会清除记录的位置信息,结束绘制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值