Scope is used right now in the link function. anyhow, controller is not used :=)

As it is now, your directive uses the local GaImportKmlDirectiveController controllers scope, which itselfs inherits prototypically from it's parent scope (which in turn contains the `.map` variable). So the directive relies on the fact that somewhere up the scope hierarchy a `.map` is defined (and pointing to the right map).

Assuming we are having 2 maps on a page, the directive can not be used on a property `.map2` (somehwere in the scope chain), it can only work with `.map`. So it's a component making assumptions about the application, which is not ideal.

By creating an isolated scope, you permit the user of the directive to specify what the map actually is for this given instance of the directive via the attribute. And to make sure that your local controller uses the defined map (e.g. `ga-import-kml-map="map2"), you have to do something like was done here: https://github.com/geoadmin/mf-geoadmin3/blob/master/src/components/map/MapDirective.js#L30
where you set the map (defined in the directives attribute) to the controller. 

Like this, the directive is better isolated.

I hope this makes sense.