On Nov 12, 2007 11:10 AM, Patrick Valsecchi <[EMAIL PROTECTED]> wrote: > Hi, > > I'm in the process to write an application where the user can edit geometries > like polygons, rectangles and circles. When I say edit I don't mean create. > For example, the user takes an existing circle and changes its center or > diameter. > > With the current state of OpenLayers, I can use ModifyFeature to edit > polygons. Works great. But for Geometry.Rectangle it's a no go. This class is > not a Geometry.Collection and thus has no "components" attribute. Because of > that, the ModifyFeature.collectVertices throws an error. > > Now, for the circle, I know that it's not OGC material and I guess you guys > don't want to add that in OpenLayers. So I need a way to be able to plugin > external logics in the ModifyFeature to support other kind of shapes. > > So here is my proposition: > > 1) Change ModifyFeature.collectVertices to use a hash table (a new > ModifyFeature attribute) that will give the method to use (equivalent of the > current collectComponentVertices) in function of the geometry.CLASS_NAME > value. > > 2) Add the support for Geometry.Rectangle. The collectComponentVertices for > this class would register 4 vertices which are Geometry.Point instances with > a modified move method that would update the x, y, w and h attributes of the > rectangle and update the 2 neighbor vertices so that they stay coherent (in a > rectangular formation). > > What do you think?
Your approach sounds fine to, please open a ticket and possibly add a patch. I'll review it. I'd like to add a few things: To me regular polygons must be .Geometry.Polygons. However, polygons drawn with the RegularPolygon handler could have some shape-type property set. For example, a polygon could have its 'circle' property set to true. In this way, Control.ModifyFeature can recognize regular polygons and behave appropriately. For example, two virtual vertices (center + a vertex on the circle border) will be displayed when modifying polygons with their 'circle' property set to true. Serialization/deserialization using OpenLayers.Format's won't be a problem as regular problems are polygons. -- Eric _______________________________________________ Dev mailing list [email protected] http://openlayers.org/mailman/listinfo/dev
