লিফলেট: স্তর-নিয়ন্ত্রণ মেনুটি কীভাবে সরানো যায়?


11

এটি একটি নির্বোধ প্রশ্ন হতে পারে, তবে আমি এটি অর্জনের জন্য কোনও ডকুমেন্টেড উপায় খুঁজে পাইনি।

আমি অবাধে স্তর-নিয়ন্ত্রণ মেনুতে অবস্থান করতে চাই, সম্ভবত ডিফল্ট জুম-ইন / আউট বোতামের নিকটবর্তী বাম দিকে top

আমার স্তর নিয়ন্ত্রণটি দেখতে এমন দেখাচ্ছে:

// Group layers as overlay pane
overlayPane = {
  "Endpoints" : endpointMarkerLayer,
  "Links" : linkLineLayer
};

// Add a layer control element to the map
layerControl = L.control.layers(null, overlayPane);
layerControl.addTo(map);

যেখানে endpointMarkerLayerএবং linkLineLayerযথাক্রমে চিহ্নিতকারী এবং পলিনাইনযুক্ত স্তর রয়েছে।

মেনুটি কোথায় উপস্থিত হওয়া উচিত তা নির্দিষ্ট করার বিকল্প নেই? বা বিকল্পভাবে, আমি কীভাবে নিয়ন্ত্রণ-মেনুটির ডম-আপজেক্টের একটি রেফারেন্স পেতে পারি, যেমন আমি এটিকে একটি কাস্টম ক্লাস এবং সিএসএসে ওভাররাইড অবস্থান নির্ধারণ করতে পারি?

উত্তর:


14

এখানে ডক্স অনুসারে , স্তর নিয়ন্ত্রণ তৈরি করার সময় আপনি বিকল্প হিসাবে অবস্থানটি পাস করতে পারেন।

উপলভ্য অবস্থানগুলি এখানে বর্ণিত হয়েছে

overlayPane = {
  "Endpoints" : endpointMarkerLayer,
  "Links" : linkLineLayer,
};

// Add a layer control element to the map
layerControl = L.control.layers(null, overlayPane, {position: 'topleft'});
layerControl.addTo(map);

বাহ, আমি কীভাবে মিস করেছি। বোকা লাগছে ^^
fgysin মনিকা

একই ভাবে এখানে ... Feeking
Stender

5

কেলসোর উত্তরটি সঠিক। তবে ডকুমেন্টেশন (এবং এপিআই) কিছুটা বিভ্রান্তিকর। উদাহরণস্বরূপ, এই উদাহরণের উপর ভিত্তি করে একটি কাস্টম তথ্য বাক্স তৈরি করতে : http://leafletjs.com/example/choropleth.html আপনি এটি করতে পারেন:

var mapInfo = L.control({position:'topleft'});

info.onAdd = function (map) {
  this._div = L.DomUtil.create('div', 'info'); // create a div with a class "info"
  this.update();
  return this._div;
};

// method that we will use to update the control based on feature properties passed
info.update = function (props) {
    this._div.innerHTML = '<h4>US Population Density</h4>' +  (props ?
    '<b>' + props.name + '</b><br />' + props.density + ' people / mi<sup>2</sup>'
    : 'Hover over a state');
};

info.addTo(map);

বিকল্পগুলি কন্ট্রোল অবজেক্টে সেট করা আছে। সুতরাং কেউ ভাবতে পারে আপনি ওভারলে নিয়ন্ত্রণের অবস্থান তৈরি করতে এটি করতে পারেন:

// incorrect
var layerControl = L.control({position:'topleft'}).layers(null, mapOverlays).addTo(map);

এটি করার সঠিক উপায়টি যেমন উপরে বর্ণিত হয়েছে:

// correct
var layerControl = L.control.layers(null, mapOverlays, {position:'topleft'}).addTo(map);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.