
    -e                    "   d Z ddlmZ ddlZ ej        e          ZddlmZm	Z	m
Z
mZmZmZmZmZmZ ddlmZ dZ G d d	e          Z G d
 de          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )z

    )annotationsN   )	AnyBoolDictFloatIntNullableOverrideRequiredString)Model)
TileSourceMercatorTileSourceTMSTileSourceWMTSTileSourceQUADKEYTileSourceBBoxTileSourcec                      e Zd ZdZd fdZdZ edd          Z ed	d
          Z	 edd          Z
 edd          Z eeed          Z edd          Z eed          Z eed          Z eed          Z xZS )r   z A base class for all tile source types.

    In general, tile sources are used as a required input for ``TileRenderer``.

    returnNonec                :     t                      j        |i | d S Nsuper__init__selfargskwargs	__class__s      2lib/python3.11/site-packages/bokeh/models/tiles.pyr   zTileSource.__init__>   %    $)&)))))    )url	tile_sizemin_zoommax_zoomextra_url_vars zP
    Tile service url e.g., http://c.tile.openstreetmap.org/{Z}/{X}/{Y}.png
    )help   z(
    Tile size in pixels (e.g. 256)
    defaultr+   r   zU
    A minimum zoom level for the tile layer. This is the most zoomed-out level.
       zT
    A maximum zoom level for the tile layer. This is the most zoomed-in level.
    z
    A dictionary that maps url variable template keys to values.

    These variables are useful for parts of tile urls which do not change from
    tile to tile (e.g. server host name, or layer name).
    zK
    Data provider attribution content. This can include HTML content.
    z)
    An x-offset in plot coordinates
    z(
    A y-offset in plot coordinates
    zq
    Resolution (plot_units / pixels) of minimum zoom level of tileset
    projection. None to auto-compute.
    r   r   )__name__
__module____qualname____doc__r   _argsr   r%   r	   r&   r'   r(   r   r   r)   attributionr   r   x_origin_offsety_origin_offsetr
   initial_resolution__classcell__r!   s   @r"   r   r   6   s_        * * * * * * KE
&  	 	 	C C ' 	 	 	I s1 $ 	 	 	H s2 % 	 	 	H T&# - 	 	 	N & # 	 	 	K hu , 	 	 	O hu , 	 	 	O "% / 	 	 	r$   r   c                       e Zd ZdZd fdZdZ ed          Z ed          Z ed          Z	 e
d	d
          Z e
dd          Z xZS )r   zI A base class for Mercator tile services (e.g. ``WMTSTileSource``).

    r   r   c                :     t                      j        |i | d S r   r   r   s      r"   r   zMercatorTileSource.__init__q   r#   r$   )r%   r&   r'   r(   r7   r8   r)   r9   gףpEsA)r.   g|EAFzE
    Forces initial extents to snap to the closest larger zoom level.r-   Tz
    Enables continuous horizontal panning by wrapping the x-axis based on
    bounds of map.

    .. note::
        Axis coordinates are not wrapped. To toggle axis label visibility,
        use ``plot.axis.visible = False``.

    r0   )r1   r2   r3   r4   r   r5   r   r7   r8   r9   r   snap_to_zoomwrap_aroundr:   r;   s   @r"   r   r   k   s         
* * * * * * GEh{333Oh{333O!*<===4 -H I I IL $t + 	 	 	KKKKKr$   r   c                  $     e Zd ZdZd fdZ xZS )r   ae   Contains tile config info and provides urls for tiles based on a
    templated url e.g. ``http://your.tms.server.host/{Z}/{X}/{Y}.png``. The
    defining feature of TMS is the tile-origin in located at the bottom-left.

    ``TMSTileSource`` can also be helpful in implementing tile renderers for
    custom tile sets, including non-spatial datasets.

    r   r   c                :     t                      j        |i | d S r   r   r   s      r"   r   zTMSTileSource.__init__   r#   r$   r0   r1   r2   r3   r4   r   r:   r;   s   @r"   r   r      G         * * * * * * * * * *r$   r   c                  $     e Zd ZdZd fdZ xZS )r   aZ   Behaves much like ``TMSTileSource`` but has its tile-origin in the
    top-left.

    This is the most common used tile source for web mapping applications.
    Such companies as Google, MapQuest, Stamen, Esri, and OpenStreetMap provide
    service which use the WMTS specification e.g. ``http://c.tile.openstreetmap.org/{Z}/{X}/{Y}.png``.

    r   r   c                :     t                      j        |i | d S r   r   r   s      r"   r   zWMTSTileSource.__init__   r#   r$   r0   rB   r;   s   @r"   r   r      rC   r$   r   c                  $     e Zd ZdZd fdZ xZS )r   z Has the same tile origin as the ``WMTSTileSource`` but requests tiles using
    a `quadkey` argument instead of X, Y, Z e.g.
    ``http://your.quadkey.tile.host/{Q}.png``

    r   r   c                :     t                      j        |i | d S r   r   r   s      r"   r   zQUADKEYTileSource.__init__   r#   r$   r0   rB   r;   s   @r"   r   r      sG         * * * * * * * * * *r$   r   c                  >     e Zd ZdZd fdZ edd          Z xZS )	r   z Has the same default tile origin as the ``WMTSTileSource`` but requested
    tiles use a ``{XMIN}``, ``{YMIN}``, ``{XMAX}``, ``{YMAX}`` e.g.
    ``http://your.custom.tile.service?bbox={XMIN},{YMIN},{XMAX},{YMAX}``.

    r   r   c                :     t                      j        |i | d S r   r   r   s      r"   r   zBBoxTileSource.__init__   r#   r$   Fz
    Flag which indicates option to output ``{XMIN}``, ``{YMIN}``, ``{XMAX}``, ``{YMAX}`` in meters or latitude and longitude.
    r-   r0   )r1   r2   r3   r4   r   r   
use_latlonr:   r;   s   @r"   r   r      sZ         * * * * * * e + 	 	 	JJJJJr$   r   )r4   
__future__r   logging	getLoggerr1   logcore.propertiesr   r   r   r   r	   r
   r   r   r   modelr   __all__r   r   r   r   r   r    r$   r"   <module>rS      s    # " " " " " g!!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
      3	 3	 3	 3	 3	 3	 3	 3	j	 	 	 	 	 	 	 	<* * * * *& * * ** * * * *' * * *	* 	* 	* 	* 	** 	* 	* 	*	 	 	 	 	' 	 	 	 	 	r$   