2012-05-30 3 views
0
updatePolygon: function() { 
    drawControls.modify.createVertices; 
    var sides = 50; 
    drawControls.regular.handler.sides = sides; 
} 

OpenLayers 예제에서이 함수를 얻었습니다. 그것은 완전히에만 불을 지르고는 점을 유혹 다수의 오류를 편집 할 수 있습니다, 작동 : 매우 깔끔한 보이지 않기 때문에Openlayers의 폴리곤에서 정점을 변경하면 여러 오류가 발생합니다.

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

은 누군가가 나에게이 문제를 해결 할 수 있습니다.

미리 감사드립니다.

답변

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;  
     } 
    } 
관련 문제