Зауважую, ви вже знайшли рішення, яке працює для вас, але я подумав, що я можу додати деякі додаткові варіанти, які вам чи іншим можуть бути корисними.
У GeoServer є можливість, відома як Virtual OWS Services . Послуги WMS, WFS та WCS спільно називаються послугами OWS. Коли ви звертаєтесь із запитом до однієї з цих служб, ви робите глобальний запит, тому всі зареєстровані шари повертаються в документ про можливості (якщо ви не встановили настройки безпеки даних). Навпаки, віртуальна послуга - це відфільтрований вигляд глобальної служби. Фільтрація проводиться на робочих просторах і доступ до неї здійснюється через дещо інший URL.
Давайте візьмемо приклад. Припустимо, у вас є робоча область під назвою myws, і саме ця робоча область ви хотіли б перелічити шари. У такому випадку ви можете зробити запит на URL:
http://www.yourgeoserver.com/geoserver/myws/ows?SERVICE=WFS&REQUEST=GetCapabilities
Документ, що повертається, містить лише ті шари, які зареєстровані в робочій області myws .
Це один підхід, однак ви спочатку запитували про доступ до списку шарів через JavaScript. На щастя, є спосіб зробити це за допомогою API GeoServer REST. Ви можете отримати список типів функцій для даної робочої області та сховища даних, використовуючи щось на кшталт:
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 тут .
Сподіваюсь, що це дає вам деякі інші підходи до розгляду.