Folium_个人基础信息介绍

Folium_个人基础信息介绍folium基础内容介绍1.简介​ folium是js上著名的地理信息可视化库leafet.js为Python提供的接口,通过它,我们可以通过在Python端编写代码操纵数据,来调用leaflet的相关功能,基于内建的osm或自行获取的osm资源和地图原件进行地理信息内容的可视化,以及制作优美的可交互地图,是通过不断添加图层元素来定义一个Map对象,最后以几种方式将Map对象展现出来。​ 而在Map对象的生成形式上,可以在定义所有的图层内容之后,将其保存为html文件在浏览器中独立显示,也可以基于j

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

folium基础内容介绍

1. 简介

folium是js上著名的地理信息可视化库leafet.js为Python提供的接口,通过它,我们可以通过在Python端编写代码操纵数据,来调用leaflet的相关功能,基于内建的osm或自行获取的osm资源和地图原件进行地理信息内容的可视化,以及制作优美的可交互地图,是通过不断添加图层元素来定义一个Map对象,最后以几种方式将Map对象展现出来。

​ 而在Map对象的生成形式上,可以在定义所有的图层内容之后,将其保存为html文件在浏览器中独立显示,也可以基于jupyter notebook在一个ipynb文件嵌入对应的交互地图。

2. 创建地图

首先,创建一张指定中心坐标的地图,这里指定中心坐标为保定市。

m = folium.Map(location=[38.85,115.48],
              zoom_start=14)
m.__class__
m

Jetbrains全家桶1年46,售后保障稳定

在这里插入图片描述

通过class魔法方法我们可以看到创建的m为folium中的Map类型,接下来直接输出m可以获取初始图表。

img

folium.Map()为绘制地图图层的基本函数,其主要参数如下:

  • location: tuplelist类型输入,用于控制初始地图中心点的坐标,格式为(纬度,经度)或[纬度,经度],默认为None
  • zoom_start:表示初始地图的缩放尺寸,数值越大缩放程度越大。
  • width:int型或str型,int型时,传入的是地图宽度的像素值;str型时,传入的是地图宽度的百分比,形式为’xx%’。默认为’100%’
  • height:int型或str型,int型时,传入的是地图高度的像素值;str型时,传入的是地图高度的百分比,形式为’xx%’。默认为’100%’
  • tiles:str型,用于控制绘图调用的地图样式,默认为’OpenStreetMap’,也有一些其他的内建地图样式,如’Stamen Terrain’、’Stamen Toner’、’Mapbox Bright’、’Mapbox Control Room‘等;也可以传入’None’来绘制一个没有风格的朴素地图,或传入一个URL来使用其它的自选osm
  • max_zoom:int型,控制地图可以放大程度的上限,默认为18
  • control_scale:bool型,控制是否在地图上添加比例尺,默认为False即不添加
  • no_touch:bool型,控制地图是否禁止接受来自设备的触控事件譬如拖拽等,默认为False,即不禁止。

示例:

  1. 创建width为50%且施加比例尺的地图
m = folium.Map(location=[38.85,115.48],
              zoom_start=14,control_scale=True,width='50%')
m

img

地图只有左半边被填充,且在地图左下角添加了比例尺,标记公里与英里的比例。

  1. 更改tiles风格,设置“Stamen Terrain”风格地图
m = folium.Map(location=[38.85,115.48],
              zoom_start=14, 
              tiles='Stamen Terrain')
m

img

  1. 更改tiles风格,设置“Stamen Toner”风格地图
m = folium.Map(location=[38.85,115.48],
              zoom_start=14, 
              tiles='Stamen Toner')
m

img

3. 在地图图层上添加组件

  1. 为地图添加标记组件

    通过folium.Maker()方法创建简单的标记部件,并通过add_to()将定义好的部件施加于先前创建的Map对象m之上。

   m = folium.Map(location=[38.85,115.48],
                 zoom_start=14)
   
   # 为m添加标记部件
   folium.Marker([38.85,115.48], popup='<i>Mt. Hood Meadows</i>').add_to(m)
   
   # 显示m
   m

img

folium.Maker()主要的参数有:

  • location: 同folium.Map()中的同名参数,用于确定标记部件的经纬位置
  • popup:str型或folium.Popup()对象输入,用于控制标记部件的具体样式(folium内部自建了许多样式),默认为None,即不显示部件。
  • icon:**folium.Icon()**对象,用于设置popup定义的部件的具体颜色、图标内容等

示例:设置图标为"cloud", 绿色组件。

   m = folium.Map(location=[38.85,115.48],
                 zoom_start=14)
   
   #为m添加标记部件
   folium.Marker([38.85,115.48], 
                 popup='<i>Mt. Hood Meadows</i>',
                icon=folium.Icon(icon="cloud", color="green")).add_to(m)
   
   # 显示m
   m

img

  1. 在地图上添加圆圈

    除了上面单点类型的图形部件,我们也可以在地图上添加指定范围的几何图像。

    通过folium.Circle()来绘制指定圆心和半径的圆圈。

   m = folium.Map(location=[38.85,115.48],
                 zoom_start=14)
   
   #为m添加标记部件
   folium.Circle(
       radius=100, 
       location=[38.85,115.48], 
       popup='The waterfront',
       color="red"
   ).add_to(m)
   
   # 显示m
   m

img

folium.Circle()的主要参数有:

  • location:同folium.Map()中的location,用于控制圆圈的圆心坐标。
  • radiusint型,用于控制圆圈的半径,单位米,注意,在folium.Circle()中,radius因为半径的单位是米,所以其大小随着我们对地图的缩放程度而进行相应的变化,但在与folium.CircleMarker()方法中的radius参数单位为像素,即其为屏幕上大小固定的一个圆圈,随着地图的缩放,其大小也不会发生变化。
  • colorstr型,用于控制圆圈的颜色,默认为十六进制颜色’#3388ff’或者”blue”,即一种蓝色。
  • popupstr型或**folium.Popup()**对象,用于控制圆圈的样式,默认为None,即无样式。
  • fillbool型,当为True时,圆圈内部将被填充上色彩,默认不填充。
  • fill_colorstr型,控制圆圈内部填充的色彩,默认与color参数一致。
  • fill_opacityfloat型,用于控制圆圈内部填充颜色的透明度,从0.到1.之间,默认为0.2。

示例:

   m = folium.Map(location=[38.85,115.48],
                 zoom_start=14)
   
   #为m添加标记部件
   folium.Circle(
       radius=100, 
       location=[38.85,115.48], 
       popup='The waterfront',
       color="blue",
       fill_color="#FF66CC",
       fill_opacity=0.1,
       fill=True,
   ).add_to(m)
   
   # 显示m
   m

img

  1. 在地图上绘制任何几何图形

    有些时候我们希望可以在地图上呈现不规则的几何区域,folium.PolyLine()可以实现。

    folium.PolyLine()主要参数:

    • locations:二级嵌套的list,用于指定需要按顺序连接的坐标点,若要绘制闭合的几何图像,需要在传入列表的首尾传入同样的坐标。
    • colorstr型,传入十六进制的颜色,用于控制线条的颜色,默认为’#03f’。
    • weightfloat型,用于控制线条的宽度,默认为5。
    • opacityfloat型,用于控制线条的透明度,默认为0.5。
    • popupstr型或folium.Popup()对象,用于控制线条样式。
   m = folium.Map(location=[38.85,115.48],
                 zoom_start=14,
                 control_scale=True)
   
   ls = folium.PolyLine(locations=[[38.68,115.67],[38.85,115.48],[38.65,115.37],[38.68,115.67]],
                       color='red')
   
   ls.add_to(m)
   
   m

img

  1. 在地图上添加点击触发事件

    有些时候我们希望我们的地图不光是死板的展示信息,还能根据鼠标的点击事件,来唤起更多的信息展示内容,即为地图添加更多的子内容,我们使用add_child()来完成各种子内容的添加。

    • 实现点击地图任意位置获取经纬度信息提示
     m = folium.Map(location=[38.85,115.48],
                   zoom_start=14, 
                   tiles='Stamen Toner')
     m.add_child(folium.LatLngPopup())

img

  • 实现点击地图任意位置产生一个新的图标
     m = folium.Map(location=[38.85,115.48],
                   zoom_start=14, 
                   tiles='Stamen Toner')
     m.add_child(folium.ClickForMarker())

img

  1. 热力图绘制

    有些时候我们需要查看一些数据的分布情况,可以通过热力图绘制查看。

   from folium import plugins
   from folium.plugins import HeatMap
   
   
   map_hooray = folium.Map(location=[24.482426, 118.157606], zoom_start=14)
   HeatMap(df_result[["平均纬度", "平均经度"]].iloc[:1000].values).add_to(map_hooray)
   map_hooray

img

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/222885.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号