Поверх блока с картой абсолютом спозиционировать картинку с маской. Картинку лучше сделать svg — меньше килобайт, плавные контуры при масштабировании.
Чтобы клики проходили сквозь картинку, задать ей pointer-events: none.
Работает уже почти везде caniuse.com/#feat=pointer-events
Там где pointer-events не работает не делать маску. Детектится через modernizr.