Merge pull request #1501 from oterral/vector-api
Add draw interaction tests
This commit is contained in:
@@ -9,6 +9,7 @@ goog.require('goog.object');
|
|||||||
goog.require('ol.Feature');
|
goog.require('ol.Feature');
|
||||||
goog.require('ol.format.JSON');
|
goog.require('ol.format.JSON');
|
||||||
goog.require('ol.geom.GeometryCollection');
|
goog.require('ol.geom.GeometryCollection');
|
||||||
|
goog.require('ol.geom.GeometryType');
|
||||||
goog.require('ol.geom.LineString');
|
goog.require('ol.geom.LineString');
|
||||||
goog.require('ol.geom.MultiLineString');
|
goog.require('ol.geom.MultiLineString');
|
||||||
goog.require('ol.geom.MultiPoint');
|
goog.require('ol.geom.MultiPoint');
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ goog.require('ol.Feature');
|
|||||||
goog.require('ol.feature');
|
goog.require('ol.feature');
|
||||||
goog.require('ol.format.XML');
|
goog.require('ol.format.XML');
|
||||||
goog.require('ol.geom.GeometryCollection');
|
goog.require('ol.geom.GeometryCollection');
|
||||||
|
goog.require('ol.geom.GeometryType');
|
||||||
goog.require('ol.geom.LineString');
|
goog.require('ol.geom.LineString');
|
||||||
goog.require('ol.geom.MultiLineString');
|
goog.require('ol.geom.MultiLineString');
|
||||||
goog.require('ol.geom.MultiPoint');
|
goog.require('ol.geom.MultiPoint');
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
goog.provide('ol.geom.Geometry');
|
goog.provide('ol.geom.Geometry');
|
||||||
|
goog.provide('ol.geom.GeometryType');
|
||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('goog.events.EventType');
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ goog.require('goog.asserts');
|
|||||||
goog.require('goog.object');
|
goog.require('goog.object');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
goog.require('ol.geom.Geometry');
|
goog.require('ol.geom.Geometry');
|
||||||
|
goog.require('ol.geom.GeometryType');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
goog.provide('ol.geom.LinearRing');
|
goog.provide('ol.geom.LinearRing');
|
||||||
|
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
|
goog.require('ol.geom.GeometryType');
|
||||||
goog.require('ol.geom.SimpleGeometry');
|
goog.require('ol.geom.SimpleGeometry');
|
||||||
goog.require('ol.geom.closest');
|
goog.require('ol.geom.closest');
|
||||||
goog.require('ol.geom.flat');
|
goog.require('ol.geom.flat');
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
goog.provide('ol.geom.LineString');
|
goog.provide('ol.geom.LineString');
|
||||||
|
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
|
goog.require('ol.geom.GeometryType');
|
||||||
goog.require('ol.geom.SimpleGeometry');
|
goog.require('ol.geom.SimpleGeometry');
|
||||||
goog.require('ol.geom.closest');
|
goog.require('ol.geom.closest');
|
||||||
goog.require('ol.geom.flat');
|
goog.require('ol.geom.flat');
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ goog.provide('ol.geom.MultiLineString');
|
|||||||
goog.require('goog.array');
|
goog.require('goog.array');
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
|
goog.require('ol.geom.GeometryType');
|
||||||
goog.require('ol.geom.LineString');
|
goog.require('ol.geom.LineString');
|
||||||
goog.require('ol.geom.SimpleGeometry');
|
goog.require('ol.geom.SimpleGeometry');
|
||||||
goog.require('ol.geom.closest');
|
goog.require('ol.geom.closest');
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
goog.provide('ol.geom.MultiPoint');
|
goog.provide('ol.geom.MultiPoint');
|
||||||
|
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
|
goog.require('ol.geom.GeometryType');
|
||||||
goog.require('ol.geom.Point');
|
goog.require('ol.geom.Point');
|
||||||
goog.require('ol.geom.SimpleGeometry');
|
goog.require('ol.geom.SimpleGeometry');
|
||||||
goog.require('ol.geom.flat');
|
goog.require('ol.geom.flat');
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
goog.provide('ol.geom.MultiPolygon');
|
goog.provide('ol.geom.MultiPolygon');
|
||||||
|
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
|
goog.require('ol.geom.GeometryType');
|
||||||
goog.require('ol.geom.Polygon');
|
goog.require('ol.geom.Polygon');
|
||||||
goog.require('ol.geom.SimpleGeometry');
|
goog.require('ol.geom.SimpleGeometry');
|
||||||
goog.require('ol.geom.closest');
|
goog.require('ol.geom.closest');
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ goog.provide('ol.geom.Point');
|
|||||||
|
|
||||||
goog.require('goog.asserts');
|
goog.require('goog.asserts');
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
|
goog.require('ol.geom.GeometryType');
|
||||||
goog.require('ol.geom.SimpleGeometry');
|
goog.require('ol.geom.SimpleGeometry');
|
||||||
goog.require('ol.geom.flat');
|
goog.require('ol.geom.flat');
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
goog.provide('ol.geom.Polygon');
|
goog.provide('ol.geom.Polygon');
|
||||||
|
|
||||||
goog.require('ol.extent');
|
goog.require('ol.extent');
|
||||||
|
goog.require('ol.geom.GeometryType');
|
||||||
goog.require('ol.geom.LinearRing');
|
goog.require('ol.geom.LinearRing');
|
||||||
goog.require('ol.geom.SimpleGeometry');
|
goog.require('ol.geom.SimpleGeometry');
|
||||||
goog.require('ol.geom.closest');
|
goog.require('ol.geom.closest');
|
||||||
|
|||||||
@@ -7,7 +7,11 @@ goog.require('ol.Feature');
|
|||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.MapBrowserEvent');
|
goog.require('ol.MapBrowserEvent');
|
||||||
goog.require('ol.MapBrowserEvent.EventType');
|
goog.require('ol.MapBrowserEvent.EventType');
|
||||||
|
goog.require('ol.geom.GeometryType');
|
||||||
goog.require('ol.geom.LineString');
|
goog.require('ol.geom.LineString');
|
||||||
|
goog.require('ol.geom.MultiLineString');
|
||||||
|
goog.require('ol.geom.MultiPoint');
|
||||||
|
goog.require('ol.geom.MultiPolygon');
|
||||||
goog.require('ol.geom.Point');
|
goog.require('ol.geom.Point');
|
||||||
goog.require('ol.geom.Polygon');
|
goog.require('ol.geom.Polygon');
|
||||||
goog.require('ol.interaction.Interaction');
|
goog.require('ol.interaction.Interaction');
|
||||||
@@ -395,7 +399,10 @@ ol.interaction.Draw.prototype.finishDrawing_ = function(event) {
|
|||||||
goog.asserts.assert(!goog.isNull(sketchFeature));
|
goog.asserts.assert(!goog.isNull(sketchFeature));
|
||||||
var coordinates;
|
var coordinates;
|
||||||
var geometry = sketchFeature.getGeometry();
|
var geometry = sketchFeature.getGeometry();
|
||||||
if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) {
|
if (this.mode_ === ol.interaction.DrawMode.POINT) {
|
||||||
|
goog.asserts.assertInstanceof(geometry, ol.geom.Point);
|
||||||
|
coordinates = geometry.getCoordinates();
|
||||||
|
} else if (this.mode_ === ol.interaction.DrawMode.LINE_STRING) {
|
||||||
goog.asserts.assertInstanceof(geometry, ol.geom.LineString);
|
goog.asserts.assertInstanceof(geometry, ol.geom.LineString);
|
||||||
coordinates = geometry.getCoordinates();
|
coordinates = geometry.getCoordinates();
|
||||||
// remove the redundant last point
|
// remove the redundant last point
|
||||||
@@ -407,6 +414,16 @@ ol.interaction.Draw.prototype.finishDrawing_ = function(event) {
|
|||||||
// force clockwise order for exterior ring
|
// force clockwise order for exterior ring
|
||||||
sketchFeature.setGeometry(new ol.geom.Polygon(coordinates));
|
sketchFeature.setGeometry(new ol.geom.Polygon(coordinates));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// cast multi-part geometries
|
||||||
|
if (this.type_ === ol.geom.GeometryType.MULTI_POINT) {
|
||||||
|
sketchFeature.setGeometry(new ol.geom.MultiPoint([coordinates]));
|
||||||
|
} else if (this.type_ === ol.geom.GeometryType.MULTI_LINE_STRING) {
|
||||||
|
sketchFeature.setGeometry(new ol.geom.MultiLineString([coordinates]));
|
||||||
|
} else if (this.type_ === ol.geom.GeometryType.MULTI_POLYGON) {
|
||||||
|
sketchFeature.setGeometry(new ol.geom.MultiPolygon([coordinates]));
|
||||||
|
}
|
||||||
|
|
||||||
if (this.layer_) {
|
if (this.layer_) {
|
||||||
this.layer_.getSource().addFeature(sketchFeature);
|
this.layer_.getSource().addFeature(sketchFeature);
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-8
@@ -80,7 +80,7 @@ describe('ol.interaction.Draw', function() {
|
|||||||
simulateEvent('mousedown', 10, 20);
|
simulateEvent('mousedown', 10, 20);
|
||||||
simulateEvent('mouseup', 10, 20);
|
simulateEvent('mouseup', 10, 20);
|
||||||
simulateEvent('click', 10, 20);
|
simulateEvent('click', 10, 20);
|
||||||
var features = source.getFeatures();
|
var features = source.getAllFeatures();
|
||||||
expect(features).to.have.length(1);
|
expect(features).to.have.length(1);
|
||||||
var geometry = features[0].getGeometry();
|
var geometry = features[0].getGeometry();
|
||||||
expect(geometry).to.be.a(ol.geom.Point);
|
expect(geometry).to.be.a(ol.geom.Point);
|
||||||
@@ -93,7 +93,7 @@ describe('ol.interaction.Draw', function() {
|
|||||||
simulateEvent('mousemove', 15, 20);
|
simulateEvent('mousemove', 15, 20);
|
||||||
simulateEvent('mouseup', 15, 20);
|
simulateEvent('mouseup', 15, 20);
|
||||||
simulateEvent('click', 15, 20);
|
simulateEvent('click', 15, 20);
|
||||||
var features = source.getFeatures();
|
var features = source.getAllFeatures();
|
||||||
expect(features).to.have.length(0);
|
expect(features).to.have.length(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ describe('ol.interaction.Draw', function() {
|
|||||||
simulateEvent('mousedown', 30, 15);
|
simulateEvent('mousedown', 30, 15);
|
||||||
simulateEvent('mouseup', 30, 15);
|
simulateEvent('mouseup', 30, 15);
|
||||||
simulateEvent('click', 30, 15);
|
simulateEvent('click', 30, 15);
|
||||||
var features = source.getFeatures();
|
var features = source.getAllFeatures();
|
||||||
expect(features).to.have.length(1);
|
expect(features).to.have.length(1);
|
||||||
var geometry = features[0].getGeometry();
|
var geometry = features[0].getGeometry();
|
||||||
expect(geometry).to.be.a(ol.geom.MultiPoint);
|
expect(geometry).to.be.a(ol.geom.MultiPoint);
|
||||||
@@ -149,7 +149,7 @@ describe('ol.interaction.Draw', function() {
|
|||||||
simulateEvent('mouseup', 30, 20);
|
simulateEvent('mouseup', 30, 20);
|
||||||
simulateEvent('click', 30, 20);
|
simulateEvent('click', 30, 20);
|
||||||
|
|
||||||
var features = source.getFeatures();
|
var features = source.getAllFeatures();
|
||||||
expect(features).to.have.length(1);
|
expect(features).to.have.length(1);
|
||||||
var geometry = features[0].getGeometry();
|
var geometry = features[0].getGeometry();
|
||||||
expect(geometry).to.be.a(ol.geom.LineString);
|
expect(geometry).to.be.a(ol.geom.LineString);
|
||||||
@@ -182,7 +182,7 @@ describe('ol.interaction.Draw', function() {
|
|||||||
simulateEvent('mouseup', 30, 20);
|
simulateEvent('mouseup', 30, 20);
|
||||||
simulateEvent('click', 30, 20);
|
simulateEvent('click', 30, 20);
|
||||||
|
|
||||||
var features = source.getFeatures();
|
var features = source.getAllFeatures();
|
||||||
expect(features).to.have.length(1);
|
expect(features).to.have.length(1);
|
||||||
var geometry = features[0].getGeometry();
|
var geometry = features[0].getGeometry();
|
||||||
expect(geometry).to.be.a(ol.geom.LineString);
|
expect(geometry).to.be.a(ol.geom.LineString);
|
||||||
@@ -218,7 +218,7 @@ describe('ol.interaction.Draw', function() {
|
|||||||
simulateEvent('mouseup', 30, 20);
|
simulateEvent('mouseup', 30, 20);
|
||||||
simulateEvent('click', 30, 20);
|
simulateEvent('click', 30, 20);
|
||||||
|
|
||||||
var features = source.getFeatures();
|
var features = source.getAllFeatures();
|
||||||
expect(features).to.have.length(1);
|
expect(features).to.have.length(1);
|
||||||
var geometry = features[0].getGeometry();
|
var geometry = features[0].getGeometry();
|
||||||
expect(geometry).to.be.a(ol.geom.MultiLineString);
|
expect(geometry).to.be.a(ol.geom.MultiLineString);
|
||||||
@@ -261,7 +261,7 @@ describe('ol.interaction.Draw', function() {
|
|||||||
simulateEvent('mouseup', 10, 20);
|
simulateEvent('mouseup', 10, 20);
|
||||||
simulateEvent('click', 10, 20);
|
simulateEvent('click', 10, 20);
|
||||||
|
|
||||||
var features = source.getFeatures();
|
var features = source.getAllFeatures();
|
||||||
expect(features).to.have.length(1);
|
expect(features).to.have.length(1);
|
||||||
var geometry = features[0].getGeometry();
|
var geometry = features[0].getGeometry();
|
||||||
expect(geometry).to.be.a(ol.geom.Polygon);
|
expect(geometry).to.be.a(ol.geom.Polygon);
|
||||||
@@ -308,7 +308,7 @@ describe('ol.interaction.Draw', function() {
|
|||||||
simulateEvent('mouseup', 10, 20);
|
simulateEvent('mouseup', 10, 20);
|
||||||
simulateEvent('click', 10, 20);
|
simulateEvent('click', 10, 20);
|
||||||
|
|
||||||
var features = source.getFeatures();
|
var features = source.getAllFeatures();
|
||||||
expect(features).to.have.length(1);
|
expect(features).to.have.length(1);
|
||||||
var geometry = features[0].getGeometry();
|
var geometry = features[0].getGeometry();
|
||||||
expect(geometry).to.be.a(ol.geom.MultiPolygon);
|
expect(geometry).to.be.a(ol.geom.MultiPolygon);
|
||||||
Reference in New Issue
Block a user