2010-10-06 14 views
9

Geoserver tarafından sunulan tüm katmanların bir listesini almak mümkün mü? Yani Bunu göndermek için belirli bir URL isteği var mı?Geoserver'dan katmanların listesi nasıl alınır

+0

WMS ayrıştırıcı/beautifier olduğunu (bu ve buna yeniyim yardımcı oldu) https://geoportal.bayern.de/getcapabilities/;jsessionid=451FDFA90393C2C3F073949CF7715707?wicket-crypt=g-lD2bjSH6E –

cevap

8

her liste tabakaları çeşitli hizmetler aracılığıyla sunulan geoserver ana sayfasında yetenekleri bağlantılar:

  • WMS yetenekleri vektörü taleplerini desteklemek
  • WFS yetenekleri katmanları listeler kiremitli görüntüler için destek taleplerini katmanları listeler veri
  • WCS yetenekleri raster

örnek bir WMS isteği şu şekilde görünecektir sorgular destekleyen katmanları listeler:

http://demo.opengeo.org/geoserver/wms?request=GetCapabilities&service=WMS&version=1.0.0

+1

Sadece bir katmanın kapasitesini nasıl alabilirim? Kullanıcı adını geçerek katman yeteneği alabilir miyim? –

+0

Hayır. Yapabileceğiniz tek şey, katmanları birden çok gruba ayırmak için çalışma alanlarını kullanmak ve sonra çalışma alanı düzeyinde getcapability gerçekleştirmek, bu bağlantıyı kontrol edin http://docs.geoserver.org/latest/en/user/services/virtual -services.html. Alternatif olarak GeoServer'ın REST yönetim arabirimine çağrı yapabilir, ancak bir yönetici olmanız gerekir. – simogeo

3

Yani sadece şeyiyle, burada katmanlar liste/dizi nasıl bir örnek:

burada
 var formatter = new OpenLayers.Format.WMSCapabilities(); 
     var endpoint = "path/to/wms/endpoint"; 
     var layers = []; 

     // async call to geoserver (I'm using angular) 
     $http.get(endpoint + 'request=GetCapabilities'). 

     success(function(data, status, headers, config) { 

      // use the tool to parse the data 
      var response = (formatter.read(data)); 

      // this object contains all the GetCapabilities data 
      var capability = response.capability; 

      // I want a list of names to use in my queries 
      for(var i = 0; i < capability.layers.length; i ++){ 
       layers.push(capability.layers[i].name); 
      } 
     }). 

     error(function(data, status, headers, config) { 
      alert("terrible error logging.."); 
     });