func (m *Map) printLayerStatus() { n := C.mapnik_map_layer_count(m.m) for i := 0; i < int(n); i++ { fmt.Println( C.GoString(C.mapnik_map_layer_name(m.m, C.size_t(i))), C.mapnik_map_layer_is_active(m.m, C.size_t(i)), ) } }
// SelectLayers enables/disables single layers. LayerSelector or SelectorFunc gets called for each layer. func (m *Map) SelectLayers(selector LayerSelector) { m.storeLayerStatus() n := C.mapnik_map_layer_count(m.m) for i := 0; i < int(n); i++ { layerName := C.GoString(C.mapnik_map_layer_name(m.m, C.size_t(i))) switch selector.Select(layerName) { case Include: C.mapnik_map_layer_set_active(m.m, C.size_t(i), 1) case Exclude: C.mapnik_map_layer_set_active(m.m, C.size_t(i), 0) case Default: } } }