In this chapter we saw how Mapnik works and how maps are defined and styled using both Python and XML. Using Mapnik's Python API, it was possible to define the map in XML and then alter it in Python, showing great flexibility for all kinds of needs.
As the app was structured, Mapnik was hidden behind high-level functionalities that enabled us to use the geographic data objects that we created before, allowing the application to filter the data to be displayed in the map.
In the next chapter, we will meet raster data for the first time; we will see how it works and display it in our maps.