2017-12-08 23 views
0

Leaflet Drawの新しいバージョンを使用しています。円の半径を編集できないという問題があります。ポリゴンとラインを編集して調整することができます。編集ツールで円を移動することはできますが、半径を変更することはできません。リーフレットで半径を調整できません。

答えて

0

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 }) 
    } 
}) 
関連する問題