Der aktuelle Standort des Busses kann auf Google Map angezeigt werden. Lassen Sie uns ihn jedoch selbst zuordnen. Lassen Sie es uns auf Python mit einem Webkarten-Display-Plug namens Folium anzeigen. Die Kartensymbole sind anklickbar und können auch detaillierte Informationen anzeigen.
realtimebus.py3
from google.transit import gtfs_realtime_pb2
import urllib.request, urllib.error
import folium
import pandas as pd
#GTFS-Öffentliche URL von RT(Uno Bus)
url ='http://www3.unobus.co.jp/GTFS/GTFS_RT-VP.bin'
#Erklärung des Spaltennamens
list_df = pd.DataFrame(columns=['id' , 'vehicle_id', 'trip_id','vehicle_timestamp','longitude','latitude','occupancy_status'])
feed = gtfs_realtime_pb2.FeedMessage()
#Daten herunterladen und Format konvertieren
with urllib.request.urlopen(url) as res: #Daten herunterladen
feed.ParseFromString(res.read()) #Protokollpuffer deserialisieren
for entity in feed.entity:
tmp_se = pd.Series( [
entity.id, #Fahrzeugidentifikation
entity.vehicle.vehicle.id, #Fahrzeugnummer
entity.vehicle.trip.trip_id, #Routennummer?
entity.vehicle.timestamp, #Fahrzeugzeit
entity.vehicle.position.longitude, #Fahrzeugspielraum
entity.vehicle.position.latitude, #Fahrzeuglänge
entity.vehicle.occupancy_status #Überlastungsgrad
], index=list_df.columns )
list_df = list_df.append( tmp_se, ignore_index=True )
#Berechnen Sie den Mittelpunkt der Karte
average_pos = list_df.mean()
#Erstellen Sie eine Karte in der Nähe der Mittelkoordinaten
m = folium.Map(location=[average_pos['latitude'], average_pos['longitude']], zoom_start=11)
#Zeichnen Sie jeden Bus(Die Farbe ist blau)
list_df.apply(lambda row:
folium.Marker(
location=[row['latitude'], row['longitude']],
popup='<table border="1"><tr><th>occupancy_status</th></tr><tr><td>'
+str(row['occupancy_status'])
+'</td></tr></table>',
icon=folium.Icon(color='blue',icon='bus', prefix='fa')
).add_to(m), axis=1)
m
Die heruntergeladenen Echtzeit-Standortinformationen wurden auf der Karte aufgezeichnet
Der Zeitpunkt der Ausführung ist nach 22:30 Uhr, aber der Bus fährt noch. .. ..
Recommended Posts