小册子绘制时无法调整半径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小册子绘制时无法调整半径相关的知识,希望对你有一定的参考价值。

我正在使用新版本的Leaflet Draw。存在无法编辑圆的半径的问题。可以编辑和调整多边形和线条。我可以使用编辑工具移动圆圈,但不能更改其半径。

答案

这是Draw插件的edit/handler/Edit.Circle.js中的一个错误。我现在通过压倒L.Edit.Circle来修复它。我把它包含在我的脚本中:

L.Edit.Circle = L.Edit.CircleMarker.extend({
  _createResizeMarker: function () {
    var center = this._shape.getLatLng(),
      resizemarkerPoint = this._getResizeMarkerPoint(center)

    this._resizeMarkers = []
    this._resizeMarkers.push(this._createMarker(resizemarkerPoint, this.options.resizeIcon))
  },

  _getResizeMarkerPoint: function (latlng) {
    var delta = this._shape._radius * Math.cos(Math.PI / 4),
      point = this._map.project(latlng)
    return this._map.unproject([point.x + delta, point.y - delta])
  },

  _resize: function (latlng) {
    var moveLatLng = this._moveMarker.getLatLng()
    var radius

    if (L.GeometryUtil.isVersion07x()) {
      radius = moveLatLng.distanceTo(latlng)
    }
    else {
      radius = this._map.distance(moveLatLng, latlng)
    }

    // **** This fixes the cicle resizing ****
    this._shape.setRadius(radius)

    this._map.fire(L.Draw.Event.EDITRESIZE, { layer: this._shape })
  }
})

以上是关于小册子绘制时无法调整半径的主要内容,如果未能解决你的问题,请参考以下文章

绘制半径等于手指路径的圆

给定两个点和半径找到圆心

CSS ONLY 动画绘制圆与边框半径和透明背景

如何更改 d3 中圆的半径和不透明度?

使用 GL_POLYGON 绘制圆,半径超出比例

无法添加圆角半径和阴影