Snap immediately on starting a sketch. r=ahocevar (closes #2039)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@9270 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -298,6 +298,7 @@ OpenLayers.Control.Snapping = OpenLayers.Class(OpenLayers.Control, {
|
|||||||
if(activated) {
|
if(activated) {
|
||||||
if(this.layer && this.layer.events) {
|
if(this.layer && this.layer.events) {
|
||||||
this.layer.events.on({
|
this.layer.events.on({
|
||||||
|
sketchstarted: this.onSketchModified,
|
||||||
sketchmodified: this.onSketchModified,
|
sketchmodified: this.onSketchModified,
|
||||||
vertexmodified: this.onVertexModified,
|
vertexmodified: this.onVertexModified,
|
||||||
scope: this
|
scope: this
|
||||||
@@ -317,6 +318,7 @@ OpenLayers.Control.Snapping = OpenLayers.Class(OpenLayers.Control, {
|
|||||||
if(deactivated) {
|
if(deactivated) {
|
||||||
if(this.layer && this.layer.events) {
|
if(this.layer && this.layer.events) {
|
||||||
this.layer.events.un({
|
this.layer.events.un({
|
||||||
|
sketchstarted: this.onSketchModified,
|
||||||
sketchmodified: this.onSketchModified,
|
sketchmodified: this.onSketchModified,
|
||||||
vertexmodified: this.onVertexModified,
|
vertexmodified: this.onVertexModified,
|
||||||
scope: this
|
scope: this
|
||||||
|
|||||||
@@ -175,7 +175,7 @@
|
|||||||
|
|
||||||
function test_snapping(t) {
|
function test_snapping(t) {
|
||||||
|
|
||||||
t.plan(33);
|
t.plan(46);
|
||||||
|
|
||||||
var map = new OpenLayers.Map("map", {
|
var map = new OpenLayers.Map("map", {
|
||||||
resolutions: [1],
|
resolutions: [1],
|
||||||
@@ -298,7 +298,29 @@
|
|||||||
// unsnap & reset
|
// unsnap & reset
|
||||||
drag(-100, -50);
|
drag(-100, -50);
|
||||||
control.greedy = true;
|
control.greedy = true;
|
||||||
events = [];
|
events = [];
|
||||||
|
|
||||||
|
// demonstrate snapping on sketchstarted
|
||||||
|
var p = new OpenLayers.Geometry.Point(0, 1);
|
||||||
|
layer1.events.triggerEvent("sketchstarted", {
|
||||||
|
vertex: p,
|
||||||
|
feature: new OpenLayers.Feature.Vector(p)
|
||||||
|
});
|
||||||
|
t.eq(events.length, 2, "[sketchstarted] 2 events triggered");
|
||||||
|
t.eq(events[0].type, "beforesnap", "[sketchstarted] beforesnap triggered");
|
||||||
|
t.eq(events[0].snapType, "node", "[sketchstarted] beforesnap triggered for node");
|
||||||
|
t.ok(events[0].point === p, "[sketchstarted] beforesnap triggered with vertex");
|
||||||
|
t.eq(events[0].x, 0, "[sketchstarted] beforesnap triggered correct x");
|
||||||
|
t.eq(events[0].y, 0, "[sketchstarted] beforesnap triggered with correct y");
|
||||||
|
t.eq(events[1].type, "snap", "[sketchstarted] snap triggered");
|
||||||
|
t.eq(events[1].snapType, "node", "[sketchstarted] snap triggered for node");
|
||||||
|
t.ok(events[1].point === p, "[sketchstarted] snap triggered with point");
|
||||||
|
t.eq(events[1].distance, 1, "[sketchstarted] snap triggered correct distance");
|
||||||
|
t.ok(events[1].layer === layer1, "[sketchstarted] snap triggered with correct target layer");
|
||||||
|
t.eq(p.x, 0, "[sketchstarted] vertex x modified");
|
||||||
|
t.eq(p.y, 0, "[sketchstarted] vertex y modified");
|
||||||
|
// reset
|
||||||
|
events = [];
|
||||||
|
|
||||||
map.destroy();
|
map.destroy();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user