As we did with the geocaching points and political boundaries, we will implement the ability of the program to import lines (that is, linestrings). These lines can represent roads, rivers, power lines, and so on. With this kind of features, we will be able to search for points that are close to a given road for example.
The lines and the collection of lines will also be the subclasses of BaseGeoObject
and BaseGeoCollection
. Let's start by making a LineString
and a LineStringCollection
class, as follows:
Insert this new class into the
models.py
file. It could be anywhere after the base classes' definition:class LineString(BaseGeoObject): """Represents a single linestring.""" def __repr__(self): return self.get_attribute('name')
Again, we only implement the
__repr__
method. The other functionalities are inherited from theBaseGeoObject
class.Now, add the class representing a collection of linestrings and its
_parse_data
method:class LineStringCollection(BaseGeoCollection...