vue-leaflet / Vue2Leaflet

Vue 2 components for Leaflet maps
https://vue2-leaflet.netlify.app
MIT License
1.96k stars 380 forks source link

Idea: use LControlLayers, lControlZoom other place than direct child #471

Open paparent opened 4 years ago

paparent commented 4 years ago

Hi!

This is more an idea. I use the map in multiple place in my application, and I have to setup the basic stuff over and over. Fortunately, the LTileLayer can be anywhere (since it uses the findReadParent). It's the most complicated to configure over and over..

But LControlZoom / LControlLayers for example need to be direct children of LMap.

I have a custom component that I would like to do something like:

<template>
  <div>
     <l-control-zoom position="topright" />
     <l-control-layers position="bottomright" />
     <l-tile-layer ..../>
  </div>
</template>

thanks!

justinbeatz commented 4 years ago

I have the same issue where I have some controls on a custom toolbar and have functions that needs to interact with the map object splitted in different components, for a workaround I'm using a global event bus and pass the map as payload, but I would like to know if there is a better way for doing that. I found this project that uses vuex https://github.com/webdev-cals-arizona-edu/vueaflet maybe that could be a better solution. I would like to hear suggestions.

DonNicoJs commented 4 years ago

@paparent @justinbeatz This is a nice improvement, at the moment our efforts are towards the vue3 port but I will keep this in mind, in the meantime for DRY efforts maybe a mixin or a factory can help you :)