使用 Python 中的 gmplot 包绘制 Google 地图?
您可以通过多种方法在 Google 地图上绘制地理坐标。但是,如果您想将其保存到本地文件,一种更好的方法是通过一个名为 gmplot 的 Python 模块。
Python 库 gmplot 允许我们在 Google 地图上绘制数据。gmplot 具有类似 matplotlib 的界面,可以生成 HTML 和 JavaScript,以便在 Google 地图之上提供所有附加数据。
安装
如果 gmplot 尚未安装,则可以使用 pip 轻松安装 gmplot:
pip install gmplot
运行上述命令后,您可能会看到类似以下的输出:
从上面可以看出,最新的 gmplot-1.2.0 版本已安装到我们的计算机上。
gmplot 库有几种绘图方法可以创建探索性地图视图,非常简单。Gmplot 非常灵活,可以创建 Google 地图,因为我们可以用它直接生成 html。
以下是实现此目的的不同方法:
案例 1 - 使用 gmplot 创建基本地图
如果您想将地图放置到特定位置,则需要编写该位置的经纬度值和缩放分辨率。
# Import gmplot library. from gmplot import * # Place map # First two arugments are the geogrphical coordinates .i.e. Latitude and Longitude #and the zoom resolution. gmap = gmplot.GoogleMapPlotter(17.438139, 78.39583, 18) # Location where you want to save your file. gmap.draw( "C:\Users\rajesh\Desktop\map11.html" )
输出 1
注意 - 如果您是通过 API 访问,由于 Google 地图服务现在不是免费的,因此您会看到上述屏幕显示。您需要添加您的 API_KEY 才能看到更好的 Google 地图视图。以下代码可以实现此目的:
案例 1(添加了 GOOGLE_API_KEY)
使用 gmplot 创建基本地图
# Import gmplot library. from gmplot import * # Place map # First two arugments are the geogrphical coordinates .i.e. Latitude and Longitude #and the zoom resolution. gmap=gmplot.GoogleMapPlotter(17.438139, 78.39583, 18) # Because google maps is not a free service now, you need to get an api key. Else commenting # below line you will see the maps with "For Development Purpose Only" on the screen and maps # with low resolution. #gmap.apikey = "Your_API_KEY" gmap.apikey = "AIzaSyDeRNMnZ__VnQDiATiuz4kPjF_c9r1kWe8" # Location where you want to save your file. gmap.draw( "C:\Users\rajesh\Desktop\map11.html" )
注意 - 您需要添加 Google 地图 API 密钥('Your_API_KEY')并将其设置为等于 gmap.apikey。以下输出是因为我使用了自己的密钥,您也可以从以下链接获取:
https://developers.google.com/maps/documentation/embed/get-api-key
输出 1
案例 2 - 在 Google 地图上绘制多边形
# import gmplot package import gmplot latitude_list = [ 17.4567417, 17.5587901, 17.6245545] longitude_list = [ 78.2913637, 78.007699, 77.9266135 ] gmap = gmplot.GoogleMapPlotter(17.438139, 78.3936413, 11) gmap.scatter( latitude_list, longitude_list, '# FF0000', size = 40, marker = False) # polygon method Draw a polygon with # the help of coordinates gmap.polygon(latitude_list, longitude_list, color = 'cornflowerblue') gmap.apikey = "Your_API_KEY" gmap.draw( "C:\Users\rajesh\Desktop\map3.html" )
输出 2
案例 3 - 在 Google 地图上散点并绘制给定坐标之间的线。
# import gmplot package import gmplot #Set different latitude and longitude points Charminar_top_attraction_lats, Charminar_top_attraction_lons = zip(*[ (17.3833, 78.4011),(17.4239, 78.4738),(17.3713, 78.4804),(17.3616, 78.4747), (17.3578, 78.4717),(17.3604, 78.4736),(17.2543, 78.6808),(17.4062, 78.4691), (17.3950, 78.3968),(17.3587, 78.2988),(17.4156, 78.4750)]) #declare the center of the map, and how much we want the map zoomed in gmap3 = gmplot.GoogleMapPlotter(17.3616, 78.4747, 13) # Scatter map gmap3.scatter( Charminar_top_attraction_lats, Charminar_top_attraction_lons, '#FF0000',size = 50, marker = False ) # Plot method Draw a line in between given coordinates gmap3.plot(Charminar_top_attraction_lats, Charminar_top_attraction_lons, 'cornflowerblue', edge_width = 3.0) #Your Google_API_Key gmap.apikey = " API_Key” # save it to html gmap3.draw(r"c:\users\rajesh\desktop\maps\scatter.html")
输出 3
案例 4:在一个图表中使用热图和散点来表示地震。
#Import important libraries import gmplot import numpy as np # generate 700 random lats and lons latitude = (np.random.random_sample(size = 700) - 0.5) * 180 longitude = (np.random.random_sample(size = 700) - 0.5) * 360 # declare the center of the map, and how much we want the map zoomed in gmap = gmplot.GoogleMapPlotter(0, 0, 2) # plot heatmap gmap.heatmap(latitude, longitude) gmap.scatter(latitude, longitude, c='r', marker=True) #Your Google_API_Key gmap.apikey = " Your_Google_API_Key " # save it to html gmap.draw(r"c:\users\rajesh\desktop\maps\country_heatmap.html")
输出
广告