2016-11-17 14 views
1
this.drawInteraction = new ol.interaction.Draw({ 
     features: this.sourceFeatures, 
     type: 'Polygon', 
     geometryFunction: (coords, geom) => this.onDrawGeometryFunction(coords, geom) 
    }); 

private onDrawGeometryFunction(coords, geom): void { 
    if (!geom) { 
     geom = new ol.geom.Polygon(null); 
    } 
    if (coords[0].length !== this.coords_length) { 
     //if intersects undo last point 
     if (this.intersectionsExistInPolygon(coords[0])) { 
      this.drawInteraction.removeLastPoint(); 
      return geom; 
     } 
     this.coords_length = coords[0].length;   
    } 
    geom.setCoordinates(coords); 
    return geom; 
} 

Я могу определить пересечение, пока не нажму на начальную точку, чтобы завершить ничью (путем соединения по нарисованной линии). Есть ли способ услышать завершение ничьей (но не «рисование»), прежде чем это произойдет? чтобы сохранить режим рисования активным, удалив пересекающуюся последнюю точку.ol3 reset для рисования режима взаимодействия, если координаты пересекаются

ответ

0

Ну, я использовал [email protected], это условие завершения доступно из v3.16.0. Поэтому мне пришлось обновить только версию, с которой она работала нормально.