Amirfaramarzi
5 سال پیش توسط Amirfaramarzi مطرح شد
5 پاسخ

لود نشدن نقشه ی کامپوننت vue2 leaflet در تب

دوستان من دارم از

Vue۲-leaflet استفاده میکنم

و نقشه توی یه تب منو هستش بخاطر همین درست کار نمیکنه و نقشه کامل لود نمیشه کسی میدونه چطور درستش کنم؟


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

برای کار کردن با Vue2-Leaflet باید ساختاری شبیه زیر رو دنبال کنید:

تمپلت :

<div id="app">
    <l-map ref="map" :zoom="zoom" :center="center">
        <l-tile-layer :url="url" :attribution="attribution"></l-tile-layer>
        <l-marker :lat-lng="marker"></l-marker>
    </l-map>
</div>

اسکریپت :


let { LMap, LTileLayer, LMarker } = Vue2Leaflet;

new Vue({
  el: '#app',
  components: { LMap, LTileLayer, LMarker },
  data() {
    return {
      zoom:13,
      center: L.latLng(47.413220, -1.219482),
      url:'http://{s}.tile.osm.org/{z}/{x}/{y}.png',
      attribution:'&copy; ',
      marker: L.latLng(47.413220, 31.219482),
    }
  }
});

Amirfaramarzi
@faramarzii.amir 5 سال پیش مطرح شد
0

@ali.bayat

از هیمن کد استفاده میکنم تنها مشکلم اینه نقشه کامل لود نمیشه دوستان میگن باید یه کد بنویسی ک هروقت روی تب کلیک شد نقشه ریلود بشه ولی نمیدونم چطور


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

خوب از اِوِنت ها استفاده کنید.
اگر کلیک شدن رو داخل Vue میخواهید دسترسی داشته باشید:

<TabComponent @click="doSomething"> </TabComponent>

و اگر میخواهید از اِوِنت‌های مپ استفاده کنید٬ آدرس زیر:
https://leafletjs.com/reference-1.3.0.html#map-event


yacsd saeedi
@saeediyacsd 4 سال پیش مطرح شد
0

سلام من تازه میخوام با map کار کنم
امکاناتی که میخوام رو کامپوننت leaflet داره
ولی نمیدونم چطوری باید تنظیمش کنم و چه امکاناتی داره
یه منبع فارسی مناسب میشه معرفی کنید بهم؟


محمد مهدی کارگر
تخصص : طراح و برنامه نویس
@unlocker 4 سال پیش آپدیت شد
0

@saeediyacsd
بله متاسفانه بعضی وقت ها این مشکل بنا به استفاده از استایل های مخلف در قالب های مختلف رخ میده.
طبق این issue خیلی ها مثل شما به این مورد برخوردن
https://github.com/vue-leaflet/Vue2Leaflet/issues/96
این رو به کدتون اضافه کنید ، احتمال زیاد حل بشه.

mounted() {
      setTimeout(function() { window.dispatchEvent(new Event('resize')) }, 250);
}

ویرایش:
در صورتی که حل نشد ، راه حل های دیگه هم در اون issue هست ، اون ها رو بررسی کنید.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام