วิธีการสร้าง Legend ที่ติดอยู่ใน Google Maps Mashup ของคุณ
การใช้ Google Maps สําหรับแอปพลิเคชันเว็บให้ประสบการณ์ที่โต้ตอบได้แก่ผู้ใช้ โดยเฉพาะเมื่อใช้ฟีเจอร์ต่าง ๆ เช่น pushpin ที่มีการระบุสี อย่างไรก็ตาม เพื่อการสื่อสารข้อมูลอย่างมีประสิทธิภาพ การให้บริบทแก่สีเหล่านั้นเป็นสิ่งที่สำคัญ นี่คือจุดที่ legends เข้ามามีบทบาท ในโพสต์นี้ เราจะจัดการกับปัญหาการเพิ่ม legend ที่ติดอยู่ใน Google Maps mashup ของคุณที่ตอบสนองตามการปรับขนาดของเบราว์เซอร์อย่างมีพลศาสตร์
ปัญหา: การเพิ่ม Legend ใน Google Maps
ลองนึกภาพว่าคุณมีหน้าเว็บที่มี Google Maps mashup ซึ่งมี pushpin ที่มีการระบุสี ที่บ่งบอกวันเฉพาะในสัปดาห์ (เช่น วันจันทร์ วันอังคาร ฯลฯ) เมื่อผู้ใช้โต้ตอบกับหรือตั้งขนาดหน้าต่างเบราว์เซอร์ การรักษาความชัดเจนเกี่ยวกับสิ่งที่สีเหล่านั้นแทนสามารถกลายเป็นเรื่องยาก โดยเฉพาะอย่างยิ่งหากไม่มี legend ความท้าทายคือการสร้าง legend ที่คงที่และ ติดอยู่ แม้ขณะปรับขนาดหรือเปลี่ยนขนาดหน้าต่าง
Google Maps API มีคลาส GScreenOverlay
เป็นตัวเลือก แต่อนุญาตให้แค่ภาพ overlay เท่านั้น โชคดีที่มีวิธีการสร้าง Custom Control ที่จะช่วยให้เราสามารถใช้ องค์ประกอบ DIV
ที่มีข้อความได้ มาเริ่มต้นการแก้ปัญหานี้กันเถอะ
การแก้ปัญหา: การสร้าง Custom Control สำหรับ Legend
ขั้นตอนที่ 1: กำหนด Custom Control ของคุณ
เพื่อเพิ่ม legend ที่ปรับแต่ง เราจะต้องกำหนด custom control ใหม่โดยใช้ JavaScript โค้ดด้านล่างนี้จะสร้างกล่องขนาด 150w x 100h พร้อมขอบสีเทา และพื้นหลังสีขาว ภายในกล่องนี้ คุณจะวางข้อความที่ต้องการ
function MyPane() {}
MyPane.prototype = new GControl;
MyPane.prototype.initialize = function(map) {
var me = this;
me.panel = document.createElement("div");
me.panel.style.width = "150px";
me.panel.style.height = "100px";
me.panel.style.border = "1px solid gray";
me.panel.style.background = "white";
me.panel.innerHTML = "Hello World!"; // เปลี่ยนข้อความนี้เป็น legend ของคุณ
map.getContainer().appendChild(me.panel);
return me.panel;
};
ขั้นตอนที่ 2: กำหนดตำแหน่งของ Legend
เพื่อให้ legend ของคุณคงที่อยู่ในตำแหน่งที่ต้องการในแผนที่ เราจะต้องกำหนดตำแหน่งเริ่มต้น ตัวอย่างนี้จะยึด legend ไปที่ มุมขวาสูงสุด โดยมีการเว้นระยะ 10 พิกเซลลงมาและ 50 พิกเซลจากขวา
MyPane.prototype.getDefaultPosition = function() {
return new GControlPosition(
G_ANCHOR_TOP_RIGHT, new GSize(10, 50));
// ตรวจสอบให้แน่ใจว่าใช้ขีดล่าง "_" สำหรับ G_SIZE และไม่ใช่อักขระ HTML
};
ขั้นตอนที่ 3: ทำให้การกำหนดหารายการเสร็จสมบูรณ์
สุดท้าย ตรวจสอบให้แน่ใจว่า custom control สามารถส่งคืนแผงที่เราเพิ่งสร้างขึ้น นี้ทำให้แผนที่สามารถแสดงผลได้อย่างถูกต้อง
MyPane.prototype.getPanel = function() {
return me.panel;
}
map.addControl(new MyPane()); // เพิ่มควบคุม legend ที่กำหนดเองลงในแผนที่
ขั้นตอนที่ 4: ปรับแต่ง Legend ของคุณ
อย่าลืมปรับแต่งข้อความสำหรับ legend ของคุณรวมถึงสไตล์ให้ตรงกับความต้องการด้านการแสดงผลของคุณ อัปเดต property innerHTML
ด้วยข้อมูลที่เกี่ยวข้องเกี่ยวกับการจัดรหัสสีที่คุณใช้ใน pushpins ของคุณ
สรุป
การเพิ่ม legend ที่ติดอยู่ ใน Google Maps mashup ของคุณสามารถเพิ่มประสบการณ์ของผู้ใช้ได้อย่างมีนัยสำคัญโดยการให้บริบทที่จำเป็นสำหรับข้อมูลแผนที่ ด้วย JavaScript และ Google Maps API คุณสามารถนำเสนอตัวควบคุมที่กำหนดเองซึ่งยังคงติดอยู่ในตำแหน่งที่ต้องการ โดยไม่คำนึงถึงวิธีที่ผู้ใช้โต้ตอบกับหน้า
บทช่วยสอนนี้เน้นแค่หนึ่งในหลาย ๆ ความเป็นไปได้ที่คุณสามารถสำรวจได้กับ Google Maps ไม่ว่าคุณจะต้องการเพิ่ม legends, markers หรือ overlays ที่กำหนดเอง กุญแจสำคัญคือการเข้าใจวิธีการเชื่อมต่อกับ Google Maps API ได้อย่างมีประสิทธิภาพ
โดยการใช้ขั้นตอนเหล่านี้ คุณสามารถมั่นใจได้ว่าแผนที่ของคุณจะมีข้อมูลและโต้ตอบได้อย่างมีประสิทธิภาพ ขอให้สนุกกับการทำแผนที่!