folium

用 python 和 Leaflet.js 制作漂亮的交互式地图

class folium.folium.GlobalSwitches(no_touch=False, disable_3d=False)

基类:Element

class folium.folium.Map(location=None, width='100%', height='100%', left='0%', top='0%', position='relative', tiles='OpenStreetMap', attr=None, min_zoom=0, max_zoom=18, zoom_start=10, min_lat=-90, max_lat=90, min_lon=-180, max_lon=180, max_bounds=False, crs='EPSG3857', control_scale=False, prefer_canvas=False, no_touch=False, disable_3d=False, png_enabled=False, zoom_control=True, **kwargs)

基类:JSCSSMixin, MacroElement

使用 Folium 和 Leaflet.js 创建地图

使用默认的 tilesets 或自定义的 tileset url 生成给定宽度和高度的底图。 下列 tilesets 是内置于 Folium 中的。通过以下任一“tiles”关键字:

  • "OpenStreetMap"

  • “Mapbox 亮度” (限制自由 tiles 的缩放级别)

  • “Mapbox 控制室” (限制自由 tiles 的缩放级别)

  • “Stamen”(地形、墨粉和水彩)

  • “Cloudmade”(必须通过API密钥)

  • “Mapbox”(必须通过API密钥)

  • “CartoDB” (正电子和暗物质)

通过将传单样式URL传递到tiles参数,可以将自定义tileset传递到folium: http://{{s}}.yourtiles.com/{{z}}/{{x}}/{{y}}.png .

您可以在此处找到免费互动程序提供商的列表: http://leaflet-extras.github.io/leaflet-providers/preview/ . 一定要检查他们的条款和条件,并提供 attr 关键字。

参数
  • location (tuple or list, default None) -- 地图的纬度和经度(北向、东向)。

  • width (pixel int or percentage string (default: '100%')) -- 地图的宽度。

  • height (pixel int or percentage string (default: '100%')) -- 地图的高度。

  • tiles (str, default 'OpenStreetMap') -- 映射要使用的tileset。可以从内置平铺列表中选择,传递自定义URL或传递 None 创建不带平铺的地图。有关更高级的平铺层选项,请使用 TileLayer 班级。

  • min_zoom (int, default 0) -- 创建的 tile layer 的最小允许缩放级别。

  • max_zoom (int, default 18) -- 创建的 tile layer 的最大允许缩放级别。

  • zoom_start (int, default 10) -- 地图的初始缩放级别。

  • attr (string, default None) -- 地图 tile 属性;仅当传递自定义 tile URL时才需要。

  • crs (str, default 'EPSG3857') -- 定义将地理点投影到像素(屏幕)坐标和背面的坐标参考系统。您可以使用 Leaflet 值:* EPSG3857:在线地图最常见的CRS,几乎所有免费和商业tile提供商都在使用。使用的是Spherical Mercator投影。默认设置在地图的crs选项中。* EPSG4326:GIS爱好者中常见的CRS。使用的是简单的等矩形投影。* EPSG3395:在商业tile供应商中很少使用。使用的是Elliptical Mercator投影。* Simple:将经度和纬度直接映射到 x 和 y 的简单CRS。可用于平面地图(如游戏地图)。请注意,Y轴仍应反转(从下到上)。

  • control_scale (bool, default False) -- 是否在地图上添加控件比例。

  • prefer_canvas (bool, default False) -- 强制 Leaflet 将Canvas后端(如果可用)用于矢量层,而不是SVG。在某些情况下,这可以显著提高性能(例如地图上有数千个圆形标记)。

  • no_touch (bool, default False) -- 即使Leaflet检测到触碰事件, 也强制不要使用。

  • disable_3d (bool, default False) -- 强制Leaflet不要使用硬件加速的 CSS 3D 转换进行定位 (这可能会在某些罕见的环境中导致故障), 即使这些转换受支持。

  • zoom_control (bool, default True) -- 在地图上显示缩放控件。

  • **kwargs -- 其他关键字参数被传递到传单映射类:https://sportejs.com/reference-1.6.0.html地图

返回类型

Folium Map Object

示例

>>> m = folium.Map(location=[45.523, -122.675], width=750, height=500)
>>> m = folium.Map(location=[45.523, -122.675], tiles='cartodb positron')
>>> m = folium.Map(
...    location=[45.523, -122.675],
...    zoom_start=2,
...    tiles='https://api.mapbox.com/v4/mapbox.streets/{z}/{x}/{y}.png?access_token=mytoken',
...    attr='Mapbox attribution'
...)
choropleth(*args, **kwargs)

用相同的参数调用 Choropleth 类。

此方法可在自此(2018年11月)一年后删除。

default_css = [('leaflet_css', 'https://cdn.jsdelivr.net/npm/leaflet@1.6.0/dist/leaflet.css'), ('bootstrap_css', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css'), ('bootstrap_theme_css', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css'), ('awesome_markers_font_css', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css'), ('awesome_markers_css', 'https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css'), ('awesome_rotate_css', 'https://cdn.jsdelivr.net/gh/python-visualization/folium/folium/templates/leaflet.awesome.rotate.min.css')]
default_js = [('leaflet', 'https://cdn.jsdelivr.net/npm/leaflet@1.6.0/dist/leaflet.js'), ('jquery', 'https://code.jquery.com/jquery-1.12.4.min.js'), ('bootstrap', 'https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js'), ('awesome_markers', 'https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js')]
fit_bounds(bounds, padding_top_left=None, padding_bottom_right=None, padding=None, max_zoom=None)

调整地图以包含具有最大缩放级别的边界框。

参数
  • bounds (list of (latitude, longitude) points) -- 边界框指定为两个点[西南、东北]

  • padding_top_left ((x, y) point, default None) -- 在左上角填充。如果角中的某些元素(如控件)遮挡住了要缩放的对象,那么就非常有用了。

  • padding_bottom_right ((x, y) point, default None) -- 在右下角填充。

  • padding ((x, y) point, default None) -- 相当于将左上角和右下角的填充设置为相同的值。

  • max_zoom (int, default None) -- 使用的是最大缩放。

示例

>>> m.fit_bounds([[52.193636, -2.221575], [52.636878, -1.139759]])
keep_in_front(*args)

通过一个或多个必须保持在前面的层。

排序,最后一个放在最上面。

参数

*args -- 可变长度参数列表。任何可算作覆盖物的Folium物。例如FeatureGroup或TileLayer。不适用于标记,对于那些使用z_index_offset的标记。

render(**kwargs)

呈现元素的HTML表示形式。

map

绘制地图的类。

class folium.map.CustomPane(name, z_index=625, pointer_events=False)

基类:MacroElement

创建一个用于保存地图元素的自定义窗格。

行为如https://leavetjs.com/examples/map-panes所示。/

参数
  • name (string) -- 自定义窗格的名称。其他地图元素可以通过在构建时指定“pane”Kwarg添加到窗格中。

  • z_index (int or string, default 625) -- 将与窗格关联的z索引,它将确定哪些地图元素位于窗格的上方/下方。默认值(625)对应于标记和工具提示之间。默认窗格和z索引可以在https://sportejs.com/reference-1.6.0.html地图-窗格

  • pointer_events (bool, default False) -- 窗格中的层是否应与光标交互。设置为false将防止干扰与较低层关联的指针事件。

class folium.map.FeatureGroup(name=None, overlay=True, control=True, show=True, **kwargs)

基类:Layer

创建一个FeatureGroup层;您可以将事物放入其中,并将它们作为一个单独的层进行处理。例如,可以添加一个 LayerControl 来勾选/取消勾选整个组。

参数
  • name (str, default None) -- 一个featureGroup 层的名称。它将显示在 LayerControl 中。如果没有,将调用 get_name() 以获取技术(ugly)名称。

  • overlay (bool, default True) -- 请确认,你的层是叠加层(在 LayerControls 中用复选框勾选)还是底层(用单选按钮勾选)。

  • control (bool, default True) -- 请确认,层是否包含在层控件中。

  • show (bool, default True) -- 请确认,图层是否显示在起始位置(仅用于叠加)。

  • **kwargs -- 其他(可能是继承的)选项。看到了吗https://slaplejs.com/reference-1.6.0.html功能组

class folium.map.FitBounds(bounds, padding_top_left=None, padding_bottom_right=None, padding=None, max_zoom=None)

基类:MacroElement

调整地图以包含具有最大缩放级别的边界框。

参数
  • bounds (list of (latitude, longitude) points) -- 边界框指定为两个点[西南、东北]

  • padding_top_left ((x, y) point, default None) -- 在左上角填充。如果角中的某些元素(如控件)遮挡住了要缩放的对象,那么就非常有用了。

  • padding_bottom_right ((x, y) point, default None) -- 在右下角填充。

  • padding ((x, y) point, default None) -- 相当于将左上角和右下角的填充设置为相同的值。

  • max_zoom (int, default None) -- 使用的是最大缩放。

class folium.map.Icon(color='blue', icon_color='white', icon='info-sign', angle=0, prefix='glyphicon', **kwargs)

基类:MacroElement

创建一个使用 Leaflet.awesome-markers 呈现的图标对象。

参数
  • color (str, default 'blue') -- 标记的颜色。您可以使用:【红色】、【蓝色】、【绿色】、【紫色】、【橙色】、【深红色】、【浅红色】、【米色】、【深蓝色】、【深绿色】、【军校蓝】、【深紫色】、【白色】、【粉色】、【浅蓝色】、【浅绿色】、【灰色】、【黑色】、【浅灰色】

  • icon_color (str, default 'white') -- 标记绘图的颜色。您可以使用上面的颜色或HTML颜色代码。

  • icon (str, default 'info-sign') -- 标记符号的名称。请在 Font-Awesome网站中选择适合您的。警告:根据您选择的图标,您可能需要调整 prefix

  • angle (int, default 0) -- 图标将旋转此度数。

  • prefix (str, default 'glyphicon') -- 前缀说明的是图标来源。“fa”代表 font-awesome,或者用“glyphicon”代表 bootstrap 3。

  • https (//github.com/lvoogdt/Leaflet.awesome-markers) --

color_options = {'beige', 'black', 'blue', 'cadetblue', 'darkblue', 'darkgreen', 'darkpurple', 'darkred', 'gray', 'green', 'lightblue', 'lightgray', 'lightgreen', 'lightred', 'orange', 'pink', 'purple', 'red', 'white'}
class folium.map.Layer(name=None, overlay=False, control=True, show=True)

基类:MacroElement

一个抽象类,用于地图上的所有层。它用于定义一个对象是否包含在layerControls中。

参数
  • name (string, default None) -- 图层的名称将出现在层控件中

  • overlay (bool, default False) -- 将层附加在可选叠加层(真)或底层(假)。

  • control (bool, default True) -- 请确认,层是否包含在层控件中。

  • show (bool, default True) -- 请确认,图层是否显示在起始位置(仅用于叠加)。

class folium.map.LayerControl(position='topright', collapsed=True, autoZIndex=True, **kwargs)

基类:MacroElement

创建一个要添加在 folium 地图上的 LayerControl 对象。

应将此对象添加到地图对象中。图层控制中只包括地图的子图层。

参数
  • position (str) -- 控件的位置(地图角之一)可以是“左上”、“右上”、“左下”或“右下”,它的默认值是:“右上”

  • collapsed (bool, default True) -- 如果为真,控件将折叠成图标,并在鼠标悬停或触碰时展开。

  • autoZIndex (bool, default True) -- 如果为真,则控件会将z指数按递增顺序分配给所有层,以便在打开/关闭它们时保留顺序。

  • **kwargs -- 其他(可能是继承的)选项。看到了吗https://sportejs.com/reference-1.6.0.html控件-层

render(**kwargs)

呈现元素的HTML表示形式。

reset()
class folium.map.Marker(location=None, popup=None, tooltip=None, icon=None, draggable=False, **kwargs)

基类:MacroElement

在地图上创建一个简单的 Leaflet 备份标记,可选择是要弹出文本还是Vincent可视化。

参数
  • location (tuple or list) -- 标记的经纬度(北向、东向)

  • popup (string or folium.Popup, default None) -- 标记的标签;用于初始化 folium.Popup 的转义HTML字符串或 folium.Popup 实例。

  • tooltip (str or folium.Tooltip, default None) -- 当鼠标悬停在对象时,则显示文本。

  • icon (Icon plugin) -- 用于呈现标记的图标插件。

  • draggable (bool, default False) -- 设置为“True”,以便能够围绕地图拖动标记。

返回类型

Marker names and HTML in obj.template_vars

示例

>>> Marker(location=[45.5, -122.3], popup='Portland, OR')
>>> Marker(location=[45.5, -122.3], popup=Popup('Portland, OR'))
# If the popup label has characters that need to be escaped in HTML
>>> Marker(location=[45.5, -122.3],
...        popup=Popup('Mom & Pop Arrow Shop >>', parse_html=True))
render()

呈现元素的HTML表示形式。

class folium.map.Popup(html=None, parse_html=False, max_width='100%', show=False, sticky=False, **kwargs)

基类:Element

创建可链接到层的弹出窗口的实例。

参数
  • html (string or Element) -- 弹出窗口的内容。

  • parse_html (bool, default False) -- 如果弹出窗口需要先呈现模板的话,值为True。

  • max_width (int for pixels or text for percentages, default '100%') -- 弹出窗口的最大宽度。

  • show (bool, default False) -- 如果值为真,则在页面加载时显示弹出窗口。

  • sticky (bool, default False) -- 如果值为真,即使单击也不能关闭地图和其他弹出。

render(**kwargs)

呈现元素的HTML表示形式。

class folium.map.Tooltip(text, style=None, sticky=True, **kwargs)

基类:MacroElement

创建一个工具提示,当鼠标悬停在其父本上时,则会显示文本。

参数
  • text (str) -- 在对象上显示工具提示的字符串。如果参数的类型不同,它将转换为字符串格式。

  • style (str, default None.) -- HTML内嵌样式属性,如字体和颜色。将应用于包含文本的div。

  • sticky (bool, default True) -- 判断工具提示是否要跟随鼠标操作。

  • **kwargs -- 这些值将直接映射到传单选项。此处提供更多信息:https://slaplejs.com/reference-1.6.0工具提示

parse_options(kwargs)

验证 kwargs 和返回选项是否为 json 字符串。

valid_options = {'attribution': (<class 'str'>,), 'className': (<class 'str'>,), 'direction': (<class 'str'>,), 'interactive': (<class 'bool'>,), 'offset': (<class 'tuple'>,), 'opacity': (<class 'float'>, <class 'int'>), 'pane': (<class 'str'>,), 'permanent': (<class 'bool'>,), 'sticky': (<class 'bool'>,)}

Vector Layers

包装传单折线、多边形、矩形、圆形和圆形标记

class folium.vector_layers.BaseMultiLocation(locations, popup=None, tooltip=None)

基类:MacroElement

具有多个坐标的向量类的基类。

不用于直接消费

class folium.vector_layers.Circle(location=None, radius=50, popup=None, tooltip=None, **kwargs)

基类:Marker

用在地图上绘制圆形叠加的类。

这是一个近似值,并开始从真实圆偏离至接近极点(导致投影失真)。

folium.vector_layers.path_options() for the Path 选项.

参数
  • location (tuple[float, float]) -- 经纬度对(北距、东距)

  • popup (string or folium.Popup, default None) -- 当鼠标单击时,输入显示的对象文本或可视化效果。

  • tooltip (str or folium.Tooltip, default None) -- 当鼠标悬停在对象时,则显示文本。

  • radius (float) -- 圆的半径,单位为米。

  • **kwargs -- 其他有效(可能是继承的)选项。参见:https://slaplejs.com/reference-1.6.0.html圈

class folium.vector_layers.CircleMarker(location=None, radius=10, popup=None, tooltip=None, **kwargs)

基类:Marker

以像素为单位指定半径的固定大小的圆。

folium.vector_layers.path_options() for the Path 选项.

参数
  • location (tuple[float, float]) -- 经纬度对(北距、东距)

  • popup (string or folium.Popup, default None) -- 当鼠标单击时,输入显示的对象文本或可视化效果。

  • tooltip (str or folium.Tooltip, default None) -- 当鼠标悬停在对象时,则显示文本。

  • radius (float, default 10) -- 圆标记的半径(像素)。

  • **kwargs -- 其他有效(可能是继承的)选项。参见:https://spallejs.com/reference-1.6.0.html#circlemarker

class folium.vector_layers.PolyLine(locations, popup=None, tooltip=None, **kwargs)

基类:BaseMultiLocation

在地图上绘制多段线叠加。

folium.vector_layers.path_options() for the Path 选项.

参数
  • locations (list of points (latitude, longitude)) -- 线的经纬度(北向、东向)

  • popup (str or folium.Popup, default None) -- 当鼠标单击时,输入显示的对象文本或可视化效果。

  • tooltip (str or folium.Tooltip, default None) -- 当鼠标悬停在对象时,则显示文本。

  • smooth_factor (float, default 1.0) -- 在每个缩放级别上简化多段线。更多意味着更好的性能和更平滑的外观,更少意味着更准确。

  • no_clip (Bool, default False) -- 禁用多段线剪裁。

  • **kwargs -- 其他有效(可能是继承的)选项。参见:https://slaplejs.com/reference-1.6.0.html#折线

class folium.vector_layers.Polygon(locations, popup=None, tooltip=None, **kwargs)

基类:BaseMultiLocation

在地图上绘制多边形叠加。

folium.vector_layers.path_options() for the Path 选项.

参数
  • locations (list of points (latitude, longitude)) -- 线的经纬度(北向、东向)

  • popup (string or folium.Popup, default None) -- 当鼠标单击时,输入显示的对象文本或可视化效果。

  • tooltip (str or folium.Tooltip, default None) -- 当鼠标悬停在对象时,则显示文本。

  • **kwargs -- 其他有效(可能是继承的)选项。参见:https://slaplejs.com/reference-1.6.0.html多边形

class folium.vector_layers.Rectangle(bounds, popup=None, tooltip=None, **kwargs)

基类:BaseMultiLocation

在地图上绘制矩形叠加。

folium.vector_layers.path_options() for the Path 选项.

参数
  • bounds (list of points (latitude, longitude)) -- 线的经纬度(北向、东向)

  • popup (string or folium.Popup, default None) -- 当鼠标单击时,输入显示的对象文本或可视化效果。

  • tooltip (str or folium.Tooltip, default None) -- 当鼠标悬停在对象时,则显示文本。

  • **kwargs -- 其他有效(可能是继承的)选项。参见:https://slaplejs.com/reference-1.6.0.html矩形

folium.vector_layers.path_options(line=False, radius=False, **kwargs)

包含矢量叠加(多边形、多段线、圆、圆形标记和矩形)之间共享的选项和常量。

参数

Raster Layers

包裹 leaflet TileLayer、WmsTileLayer (TileLayer.WMS)、图像叠加和影像叠加

class folium.raster_layers.ImageOverlay(image, bounds, origin='upper', colormap=None, mercator_project=False, pixelated=True, name=None, overlay=True, control=True, show=True, **kwargs)

基类:Layer

用于在地图的特定边界上加载和显示单个图像,实现 ILayer 接口。

参数
  • image (string, file or array-like object) -- 要在地图上绘制数据。*如果是字符串格式,它将直接写入输出文件。*如果是文件格式,它的内容将被转换为嵌入在输出文件中的格式。*如果是类似数组,它将转换为PNG base64字符串格式,并嵌入到输出文件中。

  • bounds (list) -- 地图上的图像边界格式为[[最小纬度值,最小经度值],[最大纬度值,最大经度值]]

  • opacity (float, default Leaflet's default (1.0)) --

  • alt (string, default Leaflet's default ('')) --

  • origin (['upper' | 'lower'], optional, default 'upper') -- 将数组的[0,0]放在轴的左上角或左下角。

  • colormap (callable, used only for mono image.) -- 将单声道图像转换为 RGB 的形式 [x-> (r, g, b)] 或 [x-> (r-, g, b)] 的函数。它必须输出长度为3或4的迭代, 其值介于0和1之间。提示: 您可以使用 "matplotlib.cm" 中的颜色。

  • mercator_project (bool, default False.) -- 仅用于类似数组的图像。将数据转换为项目(经度、纬度)坐标到Mercator投影。注意,只有 image 是类似数组的对象。

  • pixelated (bool, default True) -- 锐角(真)或锯齿角(假)。

  • name (string, default None) -- 图层的名称将出现在层控件中

  • overlay (bool, default True) -- 将层附加在可选叠加层(真)或底层(假)。

  • control (bool, default True) -- 请确认,层是否包含在层控件中。

  • show (bool, default True) -- 请确认,图层是否显示在起始位置(仅用于叠加)。

  • https (See) --

  • options. --

render(**kwargs)

呈现元素的HTML表示形式。

class folium.raster_layers.TileLayer(tiles='OpenStreetMap', min_zoom=0, max_zoom=18, max_native_zoom=None, attr=None, detect_retina=False, name=None, overlay=False, control=True, show=True, no_wrap=False, subdomains='abc', tms=False, opacity=1, **kwargs)

基类:Layer

创建要附加到地图上的平铺层。

参数
  • tiles (str, default 'OpenStreetMap') -- 要使用的贴图平铺集。可以从以下内置瓷砖列表中进行选择:-“OpenStreetMap”-“Stamen Terrain”,“Stamen Toner”,“Stamen Watercolor”-“CartoDB positron”,“CartoDB dark_matter”您可以通过将单张样式的URL传递给tiles参数,将自定义瓷砖集传递到Folium: http://{{s}}.yourtiles.com/{{z}}/{{x}}/{{y}}.png . 您可以在此处找到免费互动程序提供商的列表: http://leaflet-extras.github.io/leaflet-providers/preview/ . 一定要检查他们的条款和条件,并提供 attr 关键字。

  • min_zoom (int, default 0) -- 此平铺层允许的最小缩放级别。

  • max_zoom (int, default 18) -- 此平铺层允许的最大缩放级别。

  • max_native_zoom (int, default None) -- 一个tile服务器可以提供 tiles 的最高缩放级别。如果允许的话你可以放大现有级别,否则 tiles 会变成灰色。

  • attr (string, default None) -- 地图 tile 属性;仅当传递自定义 tile URL时才需要。

  • detect_retina (bool, default False) -- 如果为真,且用户用的是 retina 显示器,它将请求4个指定大小的1/2级别和更大缩放级别的tiles去代替任意一个,目的是充分利用高分辨率。

  • name (string, default None) -- 图层的名称将出现在层控件中

  • overlay (bool, default False) -- 将层附加在可选叠加层(真)或底层(假)。

  • control (bool, default True) -- 请确认,层是否包含在层控件中。

  • show (bool, default True) -- 请确认,图层是否显示在起始位置(仅用于叠加)。

  • subdomains (list of strings, default ['abc']) -- 平铺服务的子域。

  • tms (bool, default False) -- 如果为真,则反向编码tile的Y轴编号(为TMS服务启用此选项)。

  • opacity (float, default 1) -- 设置层的不透明度。

  • **kwargs (additional keyword arguments) -- 其他关键字参数作为选项传递给 Leaflet tilelayer对象。

class folium.raster_layers.VideoOverlay(video_url, bounds, autoplay=True, loop=True, name=None, overlay=True, control=True, show=True, **kwargs)

基类:Layer

在地图上用于加载和显示视频。

参数
  • video_url (str) -- 视频的URL

  • bounds (list) -- 地图上的视频边界格式为[[lat_min,lon_min],[lat_max,lon_max]]

  • autoplay (bool, default True) --

  • loop (bool, default True) --

  • name (string, default None) -- 图层的名称将出现在层控件中

  • overlay (bool, default True) -- 将层附加在可选叠加层(真)或底层(假)。

  • control (bool, default True) -- 请确认,层是否包含在层控件中。

  • show (bool, default True) -- 请确认,图层是否显示在起始位置(仅用于叠加)。

  • **kwargs -- 其他有效(可能是继承的)选项。参见:https://sportejs.com/reference-1.6.0.html视频覆盖

class folium.raster_layers.WmsTileLayer(url, layers, styles='', fmt='image/jpeg', transparent=False, version='1.1.1', attr='', name=None, overlay=True, control=True, show=True, **kwargs)

基类:Layer

创建Web地图服务(WMS)层。

参数
  • url (str) -- WMS服务器的URL。

  • layers (str) -- 要显示的WMS层的逗号分隔列表。

  • styles (str, optional) -- 以逗号分隔的WMS样式列表。

  • fmt (str, default 'image/jpeg') -- 服务输出的格式。例如:“image/png”

  • transparent (bool, default False) -- 层是否允许透明。

  • version (str, default '1.1.1') -- 要使用的WMS服务的版本。

  • attr (str, default '') -- 服务属性。它会显示在右下角。

  • name (string, optional) -- 图层的名称将出现在层控件中

  • overlay (bool, default True) -- 将层附加在可选叠加层(真)或底层(假)。

  • control (bool, default True) -- 请确认,层是否包含在层控件中。

  • show (bool, default True) -- 请确认,图层是否显示在起始位置(仅用于叠加)。

  • **kwargs (additional keyword arguments) -- 传递到基础 tilelayer.wms 对象,可用于设置额外的 tilelayer.wms 参数或作为WMS请求中的额外参数。

  • https (See) --

Extra Features

Leaflet GeoJson 和其他特性。

class folium.features.Choropleth(geo_data, data=None, columns=None, key_on=None, bins=6, fill_color=None, nan_fill_color='black', fill_opacity=0.6, nan_fill_opacity=None, line_color='black', line_weight=1, line_opacity=1, name=None, legend_name='', overlay=True, control=True, show=True, topojson=None, smooth_factor=None, highlight=None, **kwargs)

基类:FeatureGroup

在地图上用于 GeoJSON 叠加。

在基础地图上绘制一个GeoJSON叠加图。不需要绑定数据(只传递一个GeoJSON绘图单一的颜色叠加),但是有一个数据绑定选项可以将柱状数据映射到具有颜色比例的不同功能对象。

如果数据作为 Pandas DataFrame 传递,则必须包含“columns”和“key on”关键字,第一个用于指示要使用的DataFrame列,第二个用于指示GeoJSON中要对数据进行键控的层。不需要为 Pandas 系列传递“columns”关键字。

颜色是从颜色brewer(http://colorbrewer2.org/)顺序调色板生成的。默认情况下,线性binning须约束在值的最小值和最大值之间。可以使用 “bins” 参数实现自定义binning。

TopoJSONs 可以作为 "geo_data" 传递, 但 "topojson" 关键字也必须通过引用 topojson 对象的方式进行转换。请参阅 TopoJSON API 引用中的 topojson.feature 方法: https://github.com/topojson/topojson/wiki/API-Reference

参数
  • geo_data (string/object) -- 你的 GeoJSON 几何的 URL、文件路径或数据 (json, dict, geopandas, etc)

  • data (Pandas DataFrame or Series, default None) -- 要绑定到geojson的数据。

  • columns (dict or tuple, default None) -- 如果数据是Pandas DataFrame,则需要绑定数据列。必须将列1作为键传递,将列2作为值传递。

  • key_on (string, default None) -- 在 geo_data 中的变量需要将数据绑定到GeoJSON文件。必须以“feature”开头,并使用 JavaScript 反对符号。例如:“feature.id”或“feature.properties.statename”。

  • bins (int or sequence of scalars or str, default 6) -- 如果 bins 是一个int函数,它定义的是值的最小值和最大值之间等宽的bins数。如果 bins 是一个序列,它定义的是bin边缘。此参数的更多信息,请查看numpy.histogram函数。

  • fill_color (string, optional) -- 区域填充颜色,默认为蓝色。可以传递十六进制代码、颜色名称,或者如果要绑定数据,则传递以下颜色生成器调色板之一:“BuGn”、“BuPu”、“GnBu”、“OrRd”、“PuBu”、“publign”、“PuRd”、“RdPu”、“YlGn”、“YlGnBu”、“YlOrBr”和“YlOrRd”。

  • nan_fill_color (string, default 'black') -- NaN的区域填充颜色或缺少值。可以传递十六进制代码、颜色名称。

  • fill_opacity (float, default 0.6) -- 区域填充不透明度,范围0-1。

  • nan_fill_opacity (float, default fill_opacity) -- NaN的区域填充不透明度或缺少值,范围0-1。

  • line_color (string, default 'black') -- GeoJSON geopath 线条颜色。

  • line_weight (int, default 1) -- GeoJSON geopath 线的权重。

  • line_opacity (float, default 1) -- GeoJSON geopath 线的不透明度,范围 0-1.

  • legend_name (string, default empty string) -- 数据图例的标题。

  • topojson (string, default None) -- 如果使用TopoJSON,将通过“objects.yourfeature”传递到topojson关键字参数的方式进行GeoJSON的转换。

  • smooth_factor (float, default None) -- 在每个缩放级别上简化多段线的程度。更多意味着更好的性能和更平滑的外观,而更少意味着更准确的表示。 Leaflet 默认为1.0。

  • highlight (boolean, default False) -- 在GeoJSON区域上悬停时启用突出显示功能。

  • name (string, optional) -- 层的名称,它将显示在 LayerControls 中

  • overlay (bool, default True) -- 将层附加在可选叠加层(真)或底层(假)。

  • control (bool, default True) -- 请确认,层是否包含在层控件中。

  • show (bool, default True) -- 请确认,图层是否显示在起始位置(仅用于叠加)。

返回类型

GeoJSON data layer in obj.template_vars

示例

>>> Choropleth(geo_data='us-states.json', line_color='blue',
...            line_weight=3)
>>> Choropleth(geo_data='geo.json', data=df,
...            columns=['Data 1', 'Data 2'],
...            key_on='feature.properties.myvalue',
...            fill_color='PuBu',
...            bins=[0, 20, 30, 40, 50, 60])
>>> Choropleth(geo_data='countries.json',
...            topojson='objects.countries')
>>> Choropleth(geo_data='geo.json', data=df,
...            columns=['Data 1', 'Data 2'],
...            key_on='feature.properties.myvalue',
...            fill_color='PuBu',
...            bins=[0, 20, 30, 40, 50, 60],
...            highlight=True)
render(**kwargs)

渲染GeoJson/TopoJson和色阶对象。

class folium.features.ClickForMarker(popup=None)

基类:MacroElement

你单击包含ClickForMarker的地图时,会在指针位置创建一个标记。

参数

popup (str, default None) -- 在标记弹出窗口中显示的文本。如果没有,弹出窗口将显示标记的纬度和经度。

class folium.features.ColorLine(positions, colors, colormap=None, nb_steps=12, weight=None, opacity=None, **kwargs)

基类:FeatureGroup

用指定的颜色在地图上绘制数据。

参数
  • positions (tuple or list) -- 经纬度的标记点列表

  • colors (tuple or list) -- 段颜色列表。它的长度必须等于 len(positions)-1.

  • colormap (branca.colormap.Colormap or list or tuple) -- 要使用的颜色映射。如果提供了颜色列表或颜色元组,则将从中创建 LinearColormap 。

  • nb_steps (int, default 12) -- 为了输出更亮值,颜色映射将离散为颜色数值。

  • opacity (float, default 1) -- 线条不透明度,范围0-1

  • weight (int, default 2) -- 笔划粗细(像素)

  • **kwargs -- 其他参数可用。参见 folium.map.FeatureGroup

返回类型

颜色线对象,你可以 add_to 一幅地图。

class folium.features.CustomIcon(icon_image, icon_size=None, icon_anchor=None, shadow_image=None, shadow_size=None, shadow_anchor=None, popup_anchor=None)

基类:Icon

基于图像的自定义图标创建。

参数
  • icon_image (string, file or array-like object) -- 图标数据。*如果是字符串,它将直接写入输出文件。*如果是文件,它的内容将被转换为嵌入格式,显示在输出文件中。*如果类似数组,它将转换为PNG base64字符串并嵌入到输出文件中。

  • icon_size (tuple of 2 int, optional) -- 图标图像的大小(像素)。

  • icon_anchor (tuple of 2 int, optional) -- 图标“tip”的坐标(相对于其左上角)。对齐图标,使该点位于标记位置。

  • shadow_image (string, file or array-like object, optional) -- 阴影图像数据。如果未指定,则不会创建阴影图像。

  • shadow_size (tuple of 2 int, optional) -- 阴影图像的大小(像素)。

  • shadow_anchor (tuple of 2 int, optional) -- 阴影“tip”相对于其左上角的坐标(如果未指定,默认与“icon_anchor”相同)。

  • popup_anchor (tuple of 2 int, optional) -- 相对于图标定位点的坐标,该坐标点会从弹出窗口中“打开”。

class folium.features.DivIcon(html=None, icon_size=None, icon_anchor=None, popup_anchor=None, class_name='empty')

基类:MacroElement

表示使用简单的“div”元素而不是图像标记的轻量级图标。

参数
  • icon_size (tuple of 2 int) -- 图标图像的大小(像素)。

  • icon_anchor (tuple of 2 int) -- 图标“tip”的坐标(相对于其左上角)。对齐图标,使该点位于标记位置。

  • popup_anchor (tuple of 2 int) -- 相对于图标定位点的坐标,该坐标点会从弹出窗口中“打开”。

  • class_name (string) -- 要分配给图标的自定义类名。 Leaflet 默认值是“ leaflet-div-icon”,它用阴影绘制一个小的白色正方形。我们在folium中设置为“空”。

  • html (string) -- 要放入DIV元素中的自定义HTML代码。

  • https (See) --

class folium.features.GeoJson(data, style_function=None, highlight_function=None, name=None, overlay=True, control=True, show=True, smooth_factor=None, tooltip=None, embed=True, popup=None, zoom_on_click=False, marker=None)

基类:Layer

创建用于输出到地图中的GeoJson对象。

参数
  • data (file, dict or str.) -- 要打印的GeoJSON数据。 * If file, then data will be read in the file and fully embedded in Leaflet's JavaScript. * 如果为dict,则数据将被转换为JSON并嵌入到JavaScript中。 * If str, then data will be passed to the JavaScript as-is. * 如果 __geo_interface__ is available, the _ _GEO_INTERFACE__`字典将被序列化为JSON并在以下情况下重新投影 `to_crs 是可用的。

  • style_function (function, default None) -- 函数将GeoJson Feature映射到样式字典中。

  • highlight_function (function, default None) -- 通过鼠标操作,函数将GeoJson Feature映射到样式字典中。

  • name (string, default None) -- 图层的名称将出现在层控件中

  • overlay (bool, default True) -- 将层附加在可选叠加层(真)或底层(假)。

  • control (bool, default True) -- 层是否要包含在层控件中

  • show (bool, default True) -- 请确认,图层是否显示在起始位置(仅用于叠加)。

  • smooth_factor (float, default None) -- 在每个缩放级别上简化多段线的程度。更多意味着更好的性能和更平滑的外观,而更少意味着更准确的表示。 Leaflet 默认为1.0。

  • tooltip (GeoJsonTooltip, Tooltip or str, default None) -- 鼠标悬停在对象上时,要显示文本。你可以利用这些数据,请参阅folium.GeoJsonTooltip,了解该如何使用这些数据。

  • popup (GeoJsonPopup, optional) -- 通过传递GeoJsonPopup对象为每个功能显示不同的弹出窗口。

  • marker (Circle, CircleMarker or Marker, optional) -- 如果数据包含点几何图形,则可以通过传递带有所需选项的Cirle、CircleMarker或Marker对象来格式化标记。这个 style_functionhighlight_function 还将以您传递的标记对象为目标。

  • embed (bool, default True) -- 是否在HTML文件中嵌入数据。请注意,只有在提供文件链接或URL时才支持禁用嵌入。

  • zoom_on_click (bool, default False) -- 设置为True可在单击几何体时对其进行放大。

示例

>>> # Providing filename that shall be embedded.
>>> GeoJson('foo.json')
>>> # Providing filename that shall not be embedded.
>>> GeoJson('foo.json', embed=False)
>>> # Providing dict.
>>> GeoJson(json.load(open('foo.json')))
>>> # Providing string.
>>> GeoJson(open('foo.json').read())
>>> # Provide a style_function that color all states green but Alabama.
>>> style_function = lambda x: {'fillColor': '#0000ff' if
...                             x['properties']['name']=='Alabama' else
...                             '#00ff00'}
>>> GeoJson(geojson, style_function=style_function)
convert_to_feature_collection()

如果数据尚未转换,则需要将数据转换为FeatureCollection。

find_identifier()

为每个特性找到一个唯一的标识符,需要的时候可以创建它。

根据geojson规范A特征:
  • 可能有带字符串或数值的“id”字段。

  • 必须有“属性”字段。内容可以是任何JSON对象,甚至可以是空的。

get_geojson_from_web(url)
process_data(data)

将未知数据输入转换至geojson字典。

render(**kwargs)

呈现元素的HTML表示形式。

class folium.features.GeoJsonDetail(fields, aliases=None, labels=True, localize=False, style=None, class_name='geojsondetail')

基类:MacroElement

要从中继承方法和模板结构的GeoJSontolTip和GeoJsonPopup的基类。不能直接使用。

base_template = "\n    function(layer){\n    let div = L.DomUtil.create('div');\n    {% if this.fields %}\n    let handleObject = feature=>typeof(feature)=='object' ? JSON.stringify(feature) : feature;\n    let fields = {{ this.fields | tojson | safe }};\n    let aliases = {{ this.aliases | tojson | safe }};\n    let table = '<table>' +\n        String(\n        fields.map(\n        (v,i)=>\n        `<tr>{% if this.labels %}\n            <th>${aliases[i]{% if this.localize %}.toLocaleString(){% endif %}}</th>\n            {% endif %}\n            <td>${handleObject(layer.feature.properties[v]){% if this.localize %}.toLocaleString(){% endif %}}</td>\n        </tr>`).join(''))\n    +'</table>';\n    div.innerHTML=table;\n    {% endif %}\n    return div\n    }\n    "
render(**kwargs)

呈现元素的HTML表示形式。

warn_for_geometry_collections()

检查 GeoJson GeometryCollection 功能,用来警告用户此功能不兼容。

class folium.features.GeoJsonPopup(fields=None, aliases=None, labels=True, style='margin: auto;', class_name='foliumpopup', localize=True, **kwargs)

基类:GeoJsonDetail

创建一个弹出特性,根据GeoJson层的属性绑定到每个元素。

参数
  • fields (list or tuple.) -- 要显示的 GeoJson/TopoJson“属性”或 GeoPandas GeoDataFrame 列的标签。

  • aliases (list/tuple of strings, same length/order as fields, default None.) -- 要在工具提示中显示为字段名而不是键的可选别名 fields.

  • labels (bool, default True.) -- 设置为False,用来禁用显示字段名或别名。

  • localize (bool, default False.) -- 这将使用JavaScript的.toLocaleString()将“clean”值格式化为用户所在位置的字符串;即1000000.00逗号分隔符、浮点截断等。*可用于大多数JavaScript原语类型(您将在模板中提供的任何数据)。

  • style (str, default None.) -- HTML内嵌样式属性,如字体和颜色。将应用于包含文本的div。

示例

gjson=folium.GeoJson页(gdf)。将_添加到(m)

folium.features.GeoJsonPopup(字段= ['名称'] ,

labels=False)。将_添加到(gjson)

class folium.features.GeoJsonStyleMapper(data, feature_identifier, geojson_obj)

基类:object

创建将样式映射到GeoJson特性的字典。

在GeoJson类中使用。用户不必直接调用这个类。

get_feature_id(feature)

返回一个标识该功能的值。

get_highlight_map(highlight_function)

返回将突出显示参数映射到要素的dict。

get_style_map(style_function)

返回将样式参数映射到要素的dict。

class folium.features.GeoJsonTooltip(fields, aliases=None, labels=True, localize=False, style=None, class_name='foliumtooltip', sticky=True, **kwargs)

基类:GeoJsonDetail

创建使用来自geojson或topojson数据的工具提示。

参数
  • fields (list or tuple.) -- 要显示的 GeoJson/TopoJson“属性”或 GeoPandas GeoDataFrame 列的标签。

  • aliases (list/tuple of strings, same length/order as fields, default None.) -- 要在工具提示中显示为字段名而不是键的可选别名 fields.

  • labels (bool, default True.) -- 设置为False,用来禁用显示字段名或别名。

  • localize (bool, default False.) -- JavaScript's .toLocaleString() 将使用到“clean”值格式,作为用户位置的字符串;即 1,000,000.00 逗号分隔符、浮点截断等,可用于大多数JavaScript的基元类型(您将在模板中使用任何数据)。

  • style (str, default None.) -- HTML内嵌样式属性,如字体和颜色。将应用于包含文本的div。

  • sticky (bool, default True) -- 判断工具提示是否要跟随鼠标操作。

  • **kwargs (Assorted.) -- 这些值将直接映射到传单选项。此处提供更多信息:https://slaplejs.com/reference-1.6.0工具提示

示例

#提供带有样式的字段和别名。>>>GeoJsonTooltip(>>>fields=['CNTY_NM', 'census-pop-2015', 'census-md-income-2015']、>>>aliases=['County', '2015 Census Population', '2015 Median Income'], >>> localize=True, >>> style=('background-color: grey; color: white; font-family:' >>> 'courier new; font-size: 24px; padding: 10px;') >>> )。提供字段,使用标签关闭并固定工具提示位置。>>> GeoJsonTooltip(fields=('CNTY_NM',), labels=False, sticky=False)

class folium.features.LatLngPopup

基类:MacroElement

当你点击一个包含 LatLngPopup 的地图时,会显示一个弹出窗口,显示指针的纬度和经度。

class folium.features.RegularPolygonMarker(location, number_of_sides=4, rotation=0, radius=15, popup=None, tooltip=None, **kwargs)

基类:JSCSSMixin, Marker

使用 Leaflet 数据 Vis 框架的自定义标记。

参数
  • location (tuple or list) -- 标记的经纬度(北向、东向)

  • number_of_sides (int, default 4) -- 多边形边数

  • rotation (int, default 0) -- 旋转角度(度)

  • radius (int, default 15) -- 标记半径(像素)

  • popup (string or Popup, optional) -- 当鼠标单击时,输入显示的对象文本或可视化效果。

  • tooltip (str or folium.Tooltip, optional) -- 当鼠标悬停在对象时,则显示文本。

  • **kwargs -- 有关其他参数,请参见 path_options 。

  • https (//humangeo.github.io/leaflet-dvf/) --

default_js = [('dvf_js', 'https://cdnjs.cloudflare.com/ajax/libs/leaflet-dvf/0.3.0/leaflet-dvf.markers.min.js')]
class folium.features.TopoJson(data, object_path, style_function=None, name=None, overlay=True, control=True, show=True, smooth_factor=None, tooltip=None)

基类:JSCSSMixin, Layer

创建用于打印到地图中的TopoJson对象。

参数
  • data (file, dict or str.) -- 要绘制的TopoJSON数据。*如果是文件,那么数据将被读取到文件中并完全嵌入到 Leaflet JavaScript中。*如果是字典,那么数据将转换为JSON并嵌入到JavaScript中。*如果是字符串,那么数据将按原样传递给JavaScript。

  • object_path (str) -- 所需对象进入TopoJson结构的路径。例如:“objects.myobject”。

  • style_function (function, default None) -- 将TopoJson几何图形映射到 style dict 函数。

  • name (string, default None) -- 图层的名称将出现在层控件中

  • overlay (bool, default False) -- 将层附加在可选叠加层(真)或底层(假)。

  • control (bool, default True) -- 请确认,层是否包含在层控件中。

  • show (bool, default True) -- 请确认,图层是否显示在起始位置(仅用于叠加)。

  • smooth_factor (float, default None) -- 在每个缩放级别上简化多段线的程度。更多意味着更好的性能和更平滑的外观,而更少意味着更准确的表示。 Leaflet 默认为1.0。

  • tooltip (GeoJsonTooltip, Tooltip or str, default None) -- 鼠标悬停在对象上时,要显示文本。你可以利用这些数据,请参阅folium.GeoJsonTooltip,了解该如何使用这些数据。

示例

>>> # Providing file that shall be embeded.
>>> TopoJson(open('foo.json'), 'object.myobject')
>>> # Providing filename that shall not be embeded.
>>> TopoJson('foo.json', 'object.myobject')
>>> # Providing dict.
>>> TopoJson(json.load(open('foo.json')), 'object.myobject')
>>> # Providing string.
>>> TopoJson(open('foo.json').read(), 'object.myobject')
>>> # Provide a style_function that color all states green but Alabama.
>>> style_function = lambda x: {'fillColor': '#0000ff' if
...                             x['properties']['name']=='Alabama' else
...                             '#00ff00'}
>>> TopoJson(topo_json, 'object.myobject', style_function=style_function)
default_js = [('topojson', 'https://cdnjs.cloudflare.com/ajax/libs/topojson/1.6.9/topojson.min.js')]
get_bounds()

以[[lat_min,lon_min],[lat_max,lon_max]]的形式计算对象本身(不包括其子对象)的边界

render(**kwargs)

呈现元素的HTML表示形式。

style_data()

将self.style_function应用于self.data的每个功能。

class folium.features.Vega(data, width=None, height=None, left='0%', top='0%', position='relative')

基类:JSCSSMixin, Element

创建Vega图表元素。

参数
  • data (JSON-like str or object) -- 图表的Vega描述。它也可以是任何具有方法的对象 to_json, 以便提供 vincent 图表(示例)。

  • width (int or str, default None) -- 输出元素的宽度。如果没有,将使用数据['宽度'](如果可用)或'百分比'。例如:120,'120px','80%'

  • height (int or str, default None) -- 输出元素的高度。如果没有,将使用数据['宽度'](如果可用)或'百分比'。例如:120,'120px','80%'

  • left (int or str, default '0%') -- 输出相对于父本HTML对象的水平距离。例如:120,'120px','80%'

  • top (int or str, default '0%') -- 输出相对于父本HTML对象的垂直距离。例如:120,'120px','80%'

  • position (str, default 'relative') -- 这个 position 参数是CSS包含的。例如:“相对”、“绝对”

default_js = [('d3', 'https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js'), ('vega', 'https://cdnjs.cloudflare.com/ajax/libs/vega/1.4.3/vega.min.js'), ('jquery', 'https://code.jquery.com/jquery-2.1.0.min.js')]
render(**kwargs)

呈现元素的HTML表示形式。

class folium.features.VegaLite(data, width=None, height=None, left='0%', top='0%', position='relative')

基类:Element

创建 Vega-Lite 图表元素。

参数
  • data (JSON-like str or object) -- 图表的Vega-Lite描述。它也可以是任何对象 to_json, 以便提供 Altair 图表(示例)。

  • width (int or str, default None) -- 输出元素的宽度。如果没有,将使用数据['宽度'](如果可用)或'百分比'。例如:120,'120px','80%'

  • height (int or str, default None) -- 输出元素的高度。如果没有,将使用数据['宽度'](如果可用)或'百分比'。例如:120,'120px','80%'

  • left (int or str, default '0%') -- 输出相对于父本HTML对象的水平距离。例如:120,'120px','80%'

  • top (int or str, default '0%') -- 输出相对于父本HTML对象的垂直距离。例如:120,'120px','80%'

  • position (str, default 'relative') -- 这个 position 参数是CSS包含的。例如:“相对”、“绝对”

render(**kwargs)

呈现元素的HTML表示形式。