@@ -584,12 +584,15 @@ def _do_add_layer(self, m, layer, **kwargs):
584584
585585
586586class _WebServiceCollection :
587- def __init__ (self , m , service_type = "wmts" , url = None ):
587+ def __init__ (self , m , service_type = "wmts" , url = None , ** kwargs ):
588588 self ._m = m
589589 self ._service_type = service_type
590590 if url is not None :
591591 self ._url = url
592592
593+ # additional kwargs that will be passed to owslib.WebMapService()
594+ self ._service_kwargs = kwargs .copy ()
595+
593596 def __getitem__ (self , key ):
594597 return self .add_layer .__dict__ [key ]
595598
@@ -626,28 +629,28 @@ def findlayer(self, name):
626629 return [i for i in self .layers if name .lower () in i .lower ()]
627630
628631 @staticmethod
629- def _get_wmts (url ):
632+ def _get_wmts (url , ** kwargs ):
630633 # TODO expose useragent
631634
632635 # lazy import used to avoid long import times
633636 from owslib .wmts import WebMapTileService
634637
635- return WebMapTileService (url )
638+ return WebMapTileService (url , ** kwargs )
636639
637640 @staticmethod
638- def _get_wms (url ):
641+ def _get_wms (url , ** kwargs ):
639642 # TODO expose useragent
640643
641644 # lazy import used to avoid long import times
642645 from owslib .wms import WebMapService
643646
644- return WebMapService (url )
647+ return WebMapService (url , ** kwargs )
645648
646649 @property
647650 @lru_cache ()
648651 def add_layer (self ):
649652 if self ._service_type == "wmts" :
650- wmts = self ._get_wmts (self ._url )
653+ wmts = self ._get_wmts (self ._url , ** self . _service_kwargs )
651654 layers = dict ()
652655 for key in wmts .contents .keys ():
653656 layername = _sanitize (key )
@@ -665,7 +668,7 @@ def add_layer(self):
665668 layers [layername ] = wmtslayer
666669
667670 elif self ._service_type == "wms" :
668- wms = self ._get_wms (self ._url )
671+ wms = self ._get_wms (self ._url , ** self . _service_kwargs )
669672 layers = dict ()
670673 for key in wms .contents .keys ():
671674 layername = _sanitize (key )
@@ -821,14 +824,14 @@ def _fetch_layers(self):
821824 url = self ._url
822825 if url is not None :
823826 if self ._service_type == "wms" :
824- wms = self ._get_wms (url )
827+ wms = self ._get_wms (url , ** self . _service_kwargs )
825828 layer_names = list (wms .contents .keys ())
826829 for lname in layer_names :
827830 self ._layers ["layer_" + _sanitize (lname )] = _WMSLayer (
828831 self ._m , wms , lname
829832 )
830833 elif self ._service_type == "wmts" :
831- wmts = self ._get_wmts (url )
834+ wmts = self ._get_wmts (url , ** self . _service_kwargs )
832835 layer_names = list (wmts .contents .keys ())
833836 for lname in layer_names :
834837 self ._layers ["layer_" + _sanitize (lname )] = _WMTSLayer (
0 commit comments