Designing ShapeEditor
Let's take a closer look at the various parts of the ShapeEditor, to see what's involved in implementing it. The ShapeEditor is going to support the following activities:
Importing the geometrical features and attributes from a shapefile
Allowing the user to select a feature to be edited
Displaying the appropriate type of editor to allow the user to edit the feature's geometry
Exporting the geometrical features and attributes back into a shapefile
Let's take a closer look at each of these user activities, to see how they will be implemented within the ShapeEditor system.
Importing a shapefile
When the user imports a shapefile, we have to store the contents of that shapefile in the database so that GeoDjango can work with it. Because we don't know in advance what types of geometries the shapefile will contain, or what attributes might be associated with each feature, we need to have a generic representation of a shapefile's contents in the database rather than defining separate...