Рисование на битмапке, в принципе даже проще, чем Canvas и GDI. Главное помнить, что код вызывается из потока и юзать синхронизацию.
Кстати, глянул сейчас на отрисовку границ тайлов - у нас там используется всего одна битмапка и на ней по-очереди рисуются границы, хотя по-моему можно же было сделать пулл битмапок и рисовать асинхронно? И скорее всего такая же логика заложена у всех векторных слоях?