如何使用folium包在Python中绘制Google地图
folium包基于Python生态系统的数据处理能力和JavaScript语言的Leaflet.js库的地图绘制能力。用户可以使用Python操纵数据,然后通过folium包使用Leaflet.js地图进行可视化。folium包是一种简单的在Leaflet.js地图上可视化数据的方法,这些数据是通过Python进行处理的。
所需的模块和库
Folium: 用户可以使用以下命令安装Folium包。
pip install folium
Geopy: Python的geopy模块使Python用户可以轻松定位地球表面上的地标、城市和国家的坐标。要安装geopy模块,用户可以使用以下命令:
pip install geopy
在成功安装两个库之后,我们按照以下步骤绘制Google地图。
步骤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 来连接地图上两个不同位置的标记。
结论
在本教程中,我们展示了用户如何在地图上绘制谷歌地图,并添加不同所需的功能,如圆形标记、降落伞标记、弹出文本以及连接地图上两个坐标的线条。