Let's take a closer look at the various parts of the ShapeEditor in order to see what's involved in implementing it. The ShapeEditor is going to support the following activities:
Importing geospatial 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 geospatial features and attributes back to a shapefile
Let's take a closer look at each of these user activities in order to see how they will be implemented within the ShapeEditor system.
When the user imports a shapefile, we will store the contents of that shapefile in the database so that GeoDjango can work with it. Because we don't know in advance which 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...