লিফলেট: আপনি কীভাবে রিমুভ লেয়ার ব্যবহার করবেন?


15

এটা আমাকে পাগল করছে। আপনার মানচিত্রে একটি স্তর নিয়ন্ত্রণ যুক্ত করার জন্য লিফলেট টিউটোরিয়ালটি দেখুন:

L.Icon.Default.imagePath = "Scripts/images";

var mapUrl = 'http://{s}.tile.openstreetmap.se/hydda/full/{z}/{x}/{y}.png';
var secondMap = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png';

var littleton = L.marker([39.61, -105.02]).bindPopup('This is Littleton, CO.'),
denver = L.marker([39.74, -104.99]).bindPopup('This is Denver, CO.'),
aurora = L.marker([39.73, -104.8]).bindPopup('This is Aurora, CO.'),
golden = L.marker([39.77, -105.23]).bindPopup('This is Golden, CO.');

var cities = L.layerGroup([littleton, denver, aurora, golden]);

var grayscale = L.tileLayer(mapUrl, { id: mapUrl }),
streets = L.tileLayer(secondMap, { id: secondMap });

var map = L.map('map', {
    center: [39.73, -104.99],
    zoom: 10,
    layers: [grayscale, cities]
});

var baseMaps = {
    "Grayscale": grayscale,
    "Streets": streets
};

var overlayMaps = {
    "Cities": cities
};

L.control.layers(baseMaps, overlayMaps).addTo(map);

এখন, আমি ম্যাপ.অন ('ক্লিক') ইভেন্টটি ব্যবহার করে নিয়ন্ত্রণ থেকে "গ্রেস্কেল" মানচিত্র সরানোর জন্য কীভাবে মুছে ফেলা লেয়ার ফাংশনটি ব্যবহার করব? কোডটি হবে:

map.on('click', function(){
    //remove GrayScale
});

আপনি কি চান যে ব্যবহারকারী কোনও বোতামের সাহায্যে গ্রেস্কেলটি সরাতে সক্ষম হন? অথবা এটি অন্য কোনও ইভেন্টের প্রভাব হিসাবে গতিময়ভাবে মুছে ফেলার জন্য? বা আপনি কি কেবল গ্রাস্কেল স্তরটি বাদ দিয়েই মানচিত্রটি শুরু করতে চান?
হেক্সামন

সহজ সমাধানটি বলি: গতিশীলভাবে কোনও ইভেন্টের প্রভাব হিসাবে। উদাহরণস্বরূপ, map.on ('ক্লিক করুন', ফাংশন () {})। আমি সেই অনুযায়ী আমার পোস্ট সম্পাদনা করব।
Yesman

উত্তর:


21

আপনি যদি শুরু থেকে গ্রেস্কেল মানচিত্রটি সরাতে চান তবে মুছুন:

    "Grayscale": grayscale,

থেকে

var baseMaps = {
    "Grayscale": grayscale,
    "Streets": streets
};

আপনি যদি একটি ক্লিকের স্তরটি সরাতে চান তবে আপনি এটিকে মানচিত্রের অবজেক্টের পদ্ধতি হিসাবে কল করুন। তাই ভালো:

map.removeLayer(grayscale)

এটি নিয়ন্ত্রণ থেকে অপসারণ করতে আপনাকে প্রথমে নিয়ন্ত্রণটিকে একটি ভেরিয়েবলের কাছে নির্ধারণ করতে হবে। এই পরিবর্তন:

L.control.layers(baseMaps, overlayMaps).addTo(map);

এটি:

lcontrol = L.control.layers(baseMaps, overlayMaps).addTo(map);

তারপরে আপনি কল করতে পারেন:

lcontrol.removeLayer(grayscale) 

.. এটি নিয়ন্ত্রণ থেকে অপসারণ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.