@@ -702,6 +702,10 @@ ol.View.prototype.fit = function(geometryOrExtent, opt_options) {
|
|||||||
ol.asserts.assert(!ol.extent.isEmpty(geometryOrExtent),
|
ol.asserts.assert(!ol.extent.isEmpty(geometryOrExtent),
|
||||||
25); // Cannot fit empty extent provided as `geometry`
|
25); // Cannot fit empty extent provided as `geometry`
|
||||||
geometry = ol.geom.Polygon.fromExtent(geometryOrExtent);
|
geometry = ol.geom.Polygon.fromExtent(geometryOrExtent);
|
||||||
|
} else if (geometryOrExtent.getType() === ol.geom.GeometryType.CIRCLE) {
|
||||||
|
geometryOrExtent = geometryOrExtent.getExtent();
|
||||||
|
geometry = ol.geom.Polygon.fromExtent(geometryOrExtent);
|
||||||
|
geometry.rotate(this.getRotation(), ol.extent.getCenter(geometryOrExtent));
|
||||||
} else {
|
} else {
|
||||||
geometry = geometryOrExtent;
|
geometry = geometryOrExtent;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -968,6 +968,21 @@ describe('ol.View', function() {
|
|||||||
expect(view.getCenter()[0]).to.be(5900);
|
expect(view.getCenter()[0]).to.be(5900);
|
||||||
expect(view.getCenter()[1]).to.be(46100);
|
expect(view.getCenter()[1]).to.be(46100);
|
||||||
|
|
||||||
|
view.fit(
|
||||||
|
new ol.geom.Circle([6000, 46000], 1000),
|
||||||
|
{size: [200, 200], constrainResolution: false});
|
||||||
|
expect(view.getResolution()).to.be(10);
|
||||||
|
expect(view.getCenter()[0]).to.be(6000);
|
||||||
|
expect(view.getCenter()[1]).to.be(46000);
|
||||||
|
|
||||||
|
view.setRotation(Math.PI / 8);
|
||||||
|
view.fit(
|
||||||
|
new ol.geom.Circle([6000, 46000], 1000),
|
||||||
|
{size: [200, 200], constrainResolution: false});
|
||||||
|
expect(view.getResolution()).to.roughlyEqual(10, 1e-9);
|
||||||
|
expect(view.getCenter()[0]).to.roughlyEqual(6000, 1e-9);
|
||||||
|
expect(view.getCenter()[1]).to.roughlyEqual(46000, 1e-9);
|
||||||
|
|
||||||
view.setRotation(Math.PI / 4);
|
view.setRotation(Math.PI / 4);
|
||||||
view.fit(
|
view.fit(
|
||||||
new ol.geom.LineString([[6000, 46000], [6000, 47100], [7000, 46000]]),
|
new ol.geom.LineString([[6000, 46000], [6000, 47100], [7000, 46000]]),
|
||||||
|
|||||||
Reference in New Issue
Block a user