我有几个车辆路径,我想在不同的文件上自动绘制所有这些路径。我试图用for循环来做,但这些点最终在每个后续文件上重叠。所以,基本上,在最后一个文件中,我有所有路径。
这是我的功能。有人可以帮我弄这个吗?
def drawUnique(uniqueVeh):
for i in uniqueVeh:
latitudes = list(map(float,list(gps_data[gps_data["id"] == i]["lat"])))
longitudes = list(map(float,list(gps_data[gps_data["id"] == i]["long"])))
gmap.scatter(latitudes, longitudes, size=10, marker=False)
gmap.draw("map" + i + ".html")
答案 0 :(得分:0)
该问题与gmap
对象的声明有关,这显然是在循环之前进行的,因此使用相同的对象并保存所有标记。
您只需在每次迭代开始时定义一个新的gmap
对象,以创建一个全新的地图:
def drawUnique(uniqueVeh):
for i in uniqueVeh:
gmap = gmplot.GoogleMapPlotter(center_lat, center_lng, zoom) # replace the values !!
latitudes = list(map(float,list(gps_data[gps_data["id"] == i]["lat"])))
longitudes = list(map(float,list(gps_data[gps_data["id"] == i]["long"])))
gmap.scatter(latitudes, longitudes, size=10, marker=False)
gmap.draw("map" + i + ".html")
基本上问题中的代码可以转换如下:
import gmplot
gmap = gmplot.GoogleMapPlotter(40.640, -73.926, 16)
# turn 1
gmap.scatter([40.642810, 40.638240],
[-73.915, -73.922901],
'cornflowerblue', edge_width=8)
gmap.draw("map1.html")
# turn 2
# same gmap : all marks are added and overlap the first
gmap.scatter([40.644494, 40.637083],
[-73.925044, -73.926464],
'red', edge_width=8)
gmap.draw("map2.html")
您需要在每个绘图之间插入此行,以避免map2.html
中的重叠问题:
gmap = gmplot.GoogleMapPlotter(40.640, -73.926, 16)