มากกว่า

ใช้ข้อมูลพาเนลแทน infowindow กับ CartoDB หรือไม่

ใช้ข้อมูลพาเนลแทน infowindow กับ CartoDB หรือไม่


ฉันใช้ CartoDB API เพื่อพัฒนาโปรแกรมดูแผนที่และฉันต้องการรับข้อมูลจาก featureClick ลงในแผงเนื้อหาแทนที่จะเป็นหน้าต่างข้อมูลทั่วไป มีวิธีใดที่จะทำโดยตรง? ฉันหมายถึง ฉันได้เห็นตัวอย่างเกี่ยวกับวิธีการรวมเทมเพลตอย่างไดนามิก แต่มันจะแสดงเป็นป๊อปอัปหน้าต่างข้อมูลเสมอ เทมเพลตสามารถเชื่อมโยงกับองค์ประกอบ html อื่นและปิดใช้งานป๊อปอัป infowindow ได้หรือไม่

ฉันรู้ว่าเลเยอร์นั้นมีคุณสมบัติและค่าต่างๆ (รวมถึงการใช้ฟิลด์การโต้ตอบของเลเยอร์ด้วย) แต่ฉันอยากรู้ว่ามีวิธีใดบ้างที่สามารถใช้ได้เหมือนกับหน้าต่างข้อมูลเทมเพลต


ใช่ การรับข้อมูลไปยังองค์ประกอบ DOM ใดๆ ที่คุณระบุนั้นค่อนข้างง่าย

หากคุณดูคำจำกัดความของเหตุการณ์บนเลเยอร์ คุณจะเห็นว่าข้อมูลที่ร้องขอถูกส่งกลับเป็นออบเจกต์เรียกกลับ:

layer.on ('featureOver', ฟังก์ชั่น (e, latlng, pos, data, subLayerIndex) { console.log ("วางเมาส์เหนือรูปหลายเหลี่ยมพร้อมข้อมูล: " + data); });

หากคุณระบุองค์ประกอบ div ในเอกสาร HTML ให้พูดว่าคุณสามารถใส่รหัสนี้เพื่อให้ข้อมูลที่คลิกปรากฏในส่วนdivธาตุ:

layer.on('featureOver', ฟังก์ชัน (e, latlng, pos, data, subLayerIndex) { $("#info").html("

ชื่อ

" + data.name + "

"); });

ตรวจสอบให้แน่ใจว่าคุณเปิดใช้งานการโต้ตอบโดยใช้sublayer.setInteraction (จริง)และsublayer.setInteractivity('column1, column2,… ')เพื่อให้แน่ใจว่าข้อมูลเชื่อมโยงกับการโต้ตอบ ดูวิธีการอ้างอิงที่นี่และที่นี่

หากคุณต้องการปิดใช้งานหน้าต่างข้อมูลเทมเพลต คุณต้องดำเนินการใน CartoDB Editor โดยยกเลิกการเลือกฟิลด์ทั้งหมดหากคุณใช้ไฟล์ viz.json หากคุณกำลังสร้างแผนที่โดยกำหนดเลเยอร์แบบไดนามิก หน้าต่างข้อมูลจะถูกปิดใช้งานตามค่าเริ่มต้น

นี่คือตัวอย่างการทำงานที่ใช้สิ่งที่กล่าวข้างต้น


ดูวิดีโอ: EP53 รจกระบบ NAS FreeNAS+เลาประสบการณ