I am playing with mapnik and trying to export multiple vector files as one pdf with multiple layers.
For the moment, my vectors get merged when rendering. Is there a way to keep each vector in a separate layer of my rendered pdf?
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It only takes a minute to sign up.
Sign up to join this communityI am playing with mapnik and trying to export multiple vector files as one pdf with multiple layers.
For the moment, my vectors get merged when rendering. Is there a way to keep each vector in a separate layer of my rendered pdf?
That's actually easier than what I expected.
The PDFPrinter needs to have its use_ocg_layers parameter set to True. The .finish() method implicitly calls the convert_pdf_pages_to_layers() method if use_ocg_layers is True.
The code looks like this in Python:
page = mapnik.printing.PDFPrinter(use_ocg_layers=True)
m = mapnik.Map(100,100)
mapnik.load_map(m, "my.xml", True)
m.zoom_all()
page.render_map(m, "my.pdf")
page.finish() # implicitly calls convert_pdf_pages_to_layers()