Python教程-如何使用Python中的folium包绘制谷歌地图
![](https://wx.javatiku.cn/j/j301-t.jpg)
folium包是建立在Python生态系统的数据处理优势和JavaScript语言的Leaflet.js库的地图绘制优势之上的。用户可以使用Python来处理数据,然后通过folium包在Leaflet.js地图上可视化数据。folium包是在使用Python进行处理后在Leaflet.js地图上可视化数据的简便方法。
所需模块和库
Folium: 用户可以使用以下命令安装Folium包。
pip install folium
Geopy: Python的geopy模块使Python用户能够定位地球表面上的地标、城市和国家的坐标。要安装geopy模块,用户可以使用以下命令:
pip install geopy
在成功安装了这两个库之后,我们可以按照下面的步骤绘制谷歌地图。
步骤1:创建基本地图
用户可以使用以下程序创建基本地图:
import os
# First, import folium package
import folium
from geopy.geocoders import Nominatim as NT
# Initialize Nominatim API
geo_locator = NT(user_agent = "geoapiExercises")
# write the place
place_1 = "Yemen"
location_1 = geo_locator.geocode(place_1)
# now, it will search for the location by using the latitude and longitude, with zoom_start = 15
user_map1 = folium.Map(location = [location_1.longitude, location_1.latitude],
zoom_start = 15 )
# At last, open the base map
user_map1
输出:
步骤2:添加圆形标记
用户可以使用以下代码标记区域并添加弹出文本:
import folium
from geopy.geocoders import Nominatim as NT
geo_locator = NT(user_agent = "geoapiExercises")
place_1 = "Yemen"
location_1 = geo_locator.geocode(place_1)
user_map1 = folium.Map(location = [location_1.longitude, location_1.latitude],
zoom_start = 15 )
# CircleMarker with radius
folium.CircleMarker(location = [location_1.longitude, location_1.latitude],
radius = 45, popup = ' YEMEN ').add_to(user_map1)
# Now, open the Map with circular Mark
user_map1
输出:
步骤3:为降落伞样式标记添加简单标记和弹出文本
用户可以使用以下代码。
示例 -
import os
import folium
from geopy.geocoders import Nominatim as NT
geo_locator = NT(user_agent = "geoapiExercises")
place_1 = "Yemen"
location_1 = geo_locator.geocode(place_1)
user_map1 = folium.Map(location = [location_1.longitude, location_1.latitude],
zoom_start = 15)
#Now, we will pass the string in popup parameter
folium.Marker([location_1.longitude, location_1.latitude],
popup = ['YEMEN']).add_to(user_map1)
# now, open the map
user_map1
输出:
步骤4:在地图上添加线条
用户可以使用以下代码在地图上添加连接两个坐标的线条。
示例 -
# First, import folium package
import folium
import os
from geopy.geocoders import Nominatim as NT
geo_locator = NT(user_agent = "geoapiExercises")
place_1 = "Aden"
place_2 = "Yemen"
location_1 = geo_locator.geocode(place_1)
location_2 = geo_locator.geocode(place_2)
user_map1 = folium.Map(location = [location_1.longitude, location_1.latitude],
zoom_start = 6)
folium.Marker([location_1.longitude, location_1.latitude],
popup = ['Aden']).add_to(user_map1)
folium.Marker([location_2.longitude, location_2.latitude],
popup = 'Yemen').add_to(user_map1)
# Now, we will add the line on the map by using Polyline method .
# it will connect both coordinates by the line
folium.PolyLine(locations = [[location_1.longitude, location_1.latitude], [location_2.longitude, location_2.latitude]],
line_opacity = 0.5).add_to(user_map1)
# now, open the map
user_map1
输出:
解释
我们使用geopy库获取了位置的纬度和经度。然后,我们使用folium包的folium.map方法创建了Google地图的基础。
在步骤2中,我们使用folium.CircleMarker标记了位置上的圆形标记,并添加了弹出文本。在步骤3中,我们使用folium.Marker在指定位置上添加了降落伞样式的标记。在最后一步中,我们使用folium.PolyLine连接了地图上两个不同位置上的两个标记。
结论
在本教程中,我们展示了用户如何绘制谷歌地图,并在地图上添加不同的必要功能,如圆形标记、降落伞标记、弹出文本以及连接地图上两个坐标的线条。