0
updatePolygon: function() {
    drawControls.modify.createVertices;
    var sides = 50;
    drawControls.regular.handler.sides = sides;
}

我从 OpenLayers 示例中得到了这个函数。它完全有效,只有萤火虫会在要编辑的点悬停时给出多个错误:

this.features["OpenLayers.Feature.Vector_" + (id - 1 + this.hitOverflow)] is undefined
http://freetrack.local/js/OpenLayers.js
Line 1310

有人可以帮我解决这个问题,因为它看起来不太整洁。

提前致谢!

4

1 回答 1

0

@Pepijn,我面临一个接近这个挑战的挑战,不得不从多边形中更改一个点,以下代码有效,希望对您有所帮助。

var ls = new OpenLayers.Geometry.LineString([a, b]);

    // calculate scale
    var distance = a.distanceTo(b);
    var scale = newSize / distance;

    ls.resize(scale, a);
    var newB = ls.getVertices()[1];
    console.debug( 'novo b : ' + newB );

    var ownerFeature = vectors.getFeatureById(owner)
    var points = ownerFeature.geometry.getVertices();

    for (var i=0;i<points.length-1;i++){
        if( points[i].x == b.x && points[i].y == b.y ){
            console.debug('found b');
            ownerFeature.geometry.addComponent(newB,i);
            ownerFeature.geometry.removeComponent(b);
            vectors.redraw();
            break;      
        }
    }
于 2013-03-31T14:17:30.513 回答