ฉันสังเกตเห็นว่าคุณได้พบวิธีแก้ปัญหาที่เหมาะกับคุณแล้ว แต่ฉันคิดว่าฉันอาจเพิ่มตัวเลือกเพิ่มเติมที่คุณหรือคนอื่น ๆ อาจพบว่ามีประโยชน์
ใน GeoServer มีความสามารถที่เรียกว่าบริการ OWS เสมือน บริการ WMS, WFS และ WCS เป็นที่รู้จักกันโดยรวมว่าเป็นบริการ OWS เมื่อคุณทำการร้องขอไปยังหนึ่งในบริการเหล่านี้คุณกำลังร้องขอทั่วโลกดังนั้นเลเยอร์ที่ลงทะเบียนทั้งหมดจะถูกส่งคืนในเอกสารความสามารถ (ยกเว้นว่าคุณมีการตั้งค่าความปลอดภัยของข้อมูล) ในทางตรงกันข้ามบริการเสมือนเป็นมุมมองที่ถูกกรองของบริการทั่วโลก การกรองเสร็จสิ้นในพื้นที่ทำงานและเข้าถึงได้ผ่าน URL ที่แตกต่างกันเล็กน้อย
ลองยกตัวอย่าง สมมติว่าคุณมีพื้นที่ทำงานที่เรียกว่าmywsและเป็นพื้นที่ทำงานที่คุณต้องการแสดงรายการเลเยอร์ ในกรณีนั้นคุณสามารถขอ URL:
http://www.yourgeoserver.com/geoserver/myws/ows?SERVICE=WFS&REQUEST=GetCapabilities
เอกสารความสามารถที่ส่งคืนจะแสดงรายการเลเยอร์ที่ลงทะเบียนกับเวิร์กสเปซmywsเท่านั้น
นั่นเป็นวิธีการหนึ่ง แต่เดิมคุณได้ถามเกี่ยวกับการเข้าถึงรายการเลเยอร์ผ่าน JavaScript มีความสุขที่มีวิธีการทำเช่นนี้โดยใช้ GeoServer REST API คุณสามารถรับรายการประเภทคุณลักษณะสำหรับพื้นที่ทำงานและ datastore ที่กำหนดโดยใช้สิ่งต่อไปนี้
http://www.yourgeoserver.com/geoserver/rest/workspaces/myws/featuretypes.json
สิ่งนี้จะส่งคืนวัตถุ JSON ที่แสดงรายการคุณลักษณะทั้งหมดของคุณในพื้นที่ทำงานนอกจากนี้คุณยังสามารถแทนที่. json สำหรับ. xml หรือ. html เพื่อรับการตอบสนองในรูปแบบเหล่านั้น ดังนั้นวิธีการทำเช่นนี้ใน OpenLayers? โชคดีที่ OpenLayers จัดเตรียมการห่อหุ้มของวัตถุ XMLHttpRequest ในรูปแบบของOpenLayers.Request
วัตถุ ตัวอย่างง่ายๆที่ใช้ URL REST ด้านบนจะเป็น:
var request = OpenLayers.Request.GET({
url: "http://www.yourgeoserver.com/geoserver/rest/workspaces/myws/featuretypes.json",
callback: function(request) {
// Code here to handle the response, the request object contains the data
}
});
มีเอกสารที่ดีในการขอข้อมูลจากระยะไกลด้วย OpenLayers เป็นที่นี่
หวังว่าจะให้แนวทางอื่น ๆ แก่คุณในการพิจารณา