ক্যানভাস পুনরায় আকারে কীভাবে পুনরায় চিত্র / রিফ্রেশ করবেন?


9

আমি একটি ওয়েব পৃষ্ঠা তৈরি করেছি যাতে মানচিত্রটিকে পূর্ণ স্ক্রিন সেট করতে একটি বোতাম থাকে এবং তার স্বাভাবিক ফর্মটিতে ফিরে আসে, সমস্যা মানচিত্র পুরো পর্দায় সেট হয় না যতক্ষণ না আমি আউটপুট উইন্ডোর আকার পরিবর্তন করি, কীভাবে এটি পরাভূত করতে পারি,

কোন গাইডেন্স এবং সহায়তা প্রশংসা করা হয়।

এখানে কাজের উদাহরণ: ডেমো


আরও দেখুন এখানে gis.stackexchange.com/questions/31409/…
ম্যাথু লক

উত্তর:


13

map.updateSize();এর শেষে যুক্ত করুন$("#btn-full-screen").click...

ডেমো

আপডেটসাইজ ডকুমেন্টেশন

এই ফাংশনটি এমন কোনও বহিরাগত কোড দ্বারা কল করা উচিত যা ম্যাপের ডিভের আকার পরিবর্তনশীল করে (কারণ মোজিলা আমাদের কোনও উপাদানের জন্য "অনারাইজ" ধরবে না)


5

আপনি OpenLayers.Map.updateSizeযখন মানচিত্রটি সর্বাধিকতর করবেন তখন আপনি আপনার বেস স্তরটি পুনরায় আঁকতে পদ্ধতি ব্যবহার করতে পারেন ।

সুতরাং, এর মতো একটি ফাংশন যুক্ত করুন:

var fullScreen = function () {
    map.baseLayer().redraw();
}

আপনার মানচিত্রে কেবলমাত্র একটি অতিরিক্ত বিকল্প যুক্ত করতে হবে:

var map = new OpenLayers.Map({
    div: "map",
    center: new OpenLayers.LonLat(0, 0),
    updateSize: fullScreen,
    minResolution: "auto",
    minExtent: new OpenLayers.Bounds(-1, -1, 1, 1),
    maxResolution: "auto",
    maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90),
    projection: Mercator,
    displayProjection: Geographic
});

শুভকামনা!


এটি পুরো স্ক্রিনে মানচিত্র সেট করে না, আপনি দয়া করে ফিডলটি আপডেট করতে পারেন।
bios

ধন্যবাদ। জুম করার সময় আমার টাইলগুলি সাদা হয়ে গেছে transitionEffect: 'resize'map.baseLayer().redraw();ঠিক কর.
নিকোলাস বোয়েস্টল্ট

0

যখনই আপনার উইন্ডোর আকার পরিবর্তন বা ট্যাব পরিবর্তন বা পূর্ণ স্ক্রিনে বা আপনার প্রয়োজন অনুসারে অন্য কোনও ইভেন্টের মতো মানচিত্র পুনরায় আঁকার প্রয়োজন হয় তখনই নীচের কোডটি লিখুন।

$(window).trigger('resize');

এটি স্বয়ংক্রিয়ভাবে updateSize()অভ্যন্তরীণভাবে ফাংশনটি ট্রিগার করবে ।

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