2017-10-03 9 views
1

私はいくつかの車両の道を持っており、それらをすべて別々のファイルに自動的に描画したいと思います。私はforループでそれをやろうとしていますが、ポイントはそれぞれのファイルに重複してしまいます。だから、基本的に、最後のファイルで、私はすべてのパスを持っています。gmplotのさまざまなファイルにいくつかのパスを描くには?

これは私の機能です。誰かがこれで私を助けることができますか?

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

問題は同じオブジェクトが使用され、全てのマークを保存しているので、ループの前に明らかになる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) 
+0

ありがとうございました!それはうまくいった!速度に応じて各ポイントの色を変えたいのですが、どうすればいいですか?私はcolor = speedを使用しようとしましたが(速度は私のgps_dataの別の列です)、動作しませんでした。私も色を試しました= ["r"、 "b" ...]、それも動作しませんでした。 –

+0
関連する問題