@@ -649,6 +649,40 @@ def get_stack_bounds(stack, host=None, port=None, owner=None, project=None,
649649 return get_json (session , request_url )
650650
651651
652+ @renderaccess
653+ def get_tilebounds_for_z (stack , z , host = None , port = None , owner = None ,
654+ project = None , session = requests .session (),
655+ render = None , ** kwargs ):
656+ """returns the bounds for each tile associated with a particular z value
657+
658+ :func:`renderapi.render.renderaccess` decorated function
659+
660+ Parameters
661+ ----------
662+ stack : str
663+ stack to look within
664+ sectionId : str
665+ sectionId to find z value
666+ render : renderapi.render.Render
667+ render connect object
668+ session : requests.sessions.Session
669+ session object (default start a new one)
670+
671+ Returns
672+ -------
673+ list
674+ list of dictionaries with tilebounds
675+
676+ Raises
677+ ------
678+ RenderError
679+
680+ """
681+
682+ request_url = format_preamble (
683+ host , port , owner , project , stack ) + '/z/{}/tileBounds' .format (z )
684+ return get_json (session , request_url )
685+
652686@renderaccess
653687def get_sectionId_for_z (stack , z , host = None , port = None , owner = None ,
654688 project = None , session = requests .session (),
@@ -678,10 +712,12 @@ def get_sectionId_for_z(stack, z, host=None, port=None, owner=None,
678712 RenderError
679713
680714 """
681- sectionData = get_stack_sectionData (
682- stack , host , port , owner , project , session )
715+
716+
717+ bounds = get_tilebounds_for_z (stack , z , host , port , owner , project , session )
718+
683719 try :
684- return next ( sd [ 'sectionId' ] for sd in sectionData if sd [ 'z' ] == z )
720+ return bounds [ 0 ][ 'sectionId' ]
685721 except Exception as e :
686722 logger .error (e )
687723 raise RenderError ('Could not find z value %f in stack %s' % (z , stack ))
0 commit comments