import nl.idgis.giclient.gis.GIS; import nl.idgis.giclient.gis.CentreScale; import nl.idgis.giclient.webserviceconnector.TransformConnectorListener; import nl.idgis.giclient.geoma.Geometry; import nl.idgis.giclient.geoma.MultiPoint; import nl.idgis.giclient.geoma.Point; import nl.idgis.giclient.geoma.Envelope; class nl.idgis.giclient.gis.ZoomResponseHandler implements TransformConnectorListener { private var gis:GIS = null; function ZoomResponseHandler(gis:GIS) { this.gis = gis; } function transformed(geom:Geometry):Void { var points:Array = MultiPoint(geom).getGeometries(); var min:Point = Point(points[0]); var max:Point = Point(points[1]); var envelope:Envelope = new Envelope(gis.getActiveMap().getSRS(), min.getX(), min.getY(), max.getX(), max.getY()); var zoomCentreScale:CentreScale = envelope.toCentreScale(Stage.width, Stage.height - 100, gis.getCoordPixFactor()); var zoomScale:Number = zoomCentreScale.getScale() * 1.3; zoomScale = gis.adaptScaleToBounds(zoomScale); gis.setCurrentCentreScale(zoomCentreScale.getCentreX(), zoomCentreScale.getCentreY(), zoomScale); } }