أكثر

كيفية عمل تأخير لانتظار تحميل الخريطة


ما الكود الذي يمكنني استخدامه لجعله ينتظر حتى يقوم البرنامج بتحميل الخريطة أولاً بعد الأمر zoomIn؟

هذا جزء من الكود الخاص بي.

لـ (var z = zoomfrom ؛ z <= zoomto ؛ z ++) {var scale = MapPanel.map.getScale () ؛ var zoomlevel = MapPanel.map.getZoom () ، NewZoomLevel = getzoomlevel (مقياس) ؛ lat1 = lat2tile (coords.top ، NewZoomLevel) ؛ lat2 = lat2tile (coords.bottom ، NewZoomLevel) ؛ long1 = long2tile (coords.left ، NewZoomLevel) ؛ long2 = long2tile (coords.right، NewZoomLevel) ؛ لـ (var x = lat1؛ x <= lat2؛ x ++) {لـ (var y = long1؛ y <= long2؛ y ++) {list = list + startlink + zoomlevel + '/' + x + '/' + y + "
"؛ } // y لـ} // x لـ MapPanel.map.zoomIn () ؛ // هذا الجزء آمل أن أضع رمزًا لانتظار تحميل الخريطة بعد التكبير} ؛ // z لـ

حاولت استخدام وظيفة extjs المتأخرة ولكن دون جدوى.


نظرًا للطبيعة غير المتزامنة لجافا سكريبت ، لا يمكنك "تأخير" تنفيذ التعليمات البرمجية لانتظار حدوث حدث معين ، فأنت بحاجة إلى استخدام عمليات الاسترجاعات التكميلية.OpenLayers. خريطةلديه مجموعة من الأحداث التي يمكنك الاستماع إليها ، الحدث الذي تحتاجه هوزوميند:

زوميند يتم تشغيله بعد اكتمال التكبير / التصغير

إليك مثال بسيط بناءً على الكود الخاص بك:

var map = MapPanel.map ؛ map.events.register ('zoomend'، map، function () {console.log ('Zoom complete!')؛})؛ console.log ("على وشك التكبير") ؛ map.zoomIn () ؛ console.log ("بدأ التكبير") ؛

يمكنك اختباره مباشرة في متصفحك عن طريق لصق الكود أعلاه (بدون السطر الأول) في وحدة تحكم JavaScript على http://openlayers.org/. يؤكد الإخراج أن أمر التنفيذ هو ما تتوقعه:

على وشك التكبير

بدأ التكبير

اكتمل التكبير!


ومع ذلك ، ليس من الواضح ما تحتاجهقائمةمتغير لـ - اعتمادًا على ما إذا كنت ترغب في استخدامه قبل أو بعد حدث التكبير الذي قد تحتاجه لإعادة ترتيب الكود الخاص بك قليلاً.


في Openlayer يوجد تحميل حدث للاستماع إلى الطبقة (الطبقات) وليس الخريطة عند تحميلها ، تحقق من الكود والرابط أدناه:

var mylayer = "// Openlayers layer object mylayer.events.register (" loadend "، mylayer، function () {console.log ('layer portable')؛})؛

حلقة الوصل: http://dev.openlayers.org/examples/layerLoadMonitoring.html


شاهد الفيديو: GENSHIN IMPACT FAIL RAPTORS ONLINE AMONG US WIN (شهر اكتوبر 2021).