1. 程式人生 > 實用技巧 >GPS資料在高德地圖上的視覺化

GPS資料在高德地圖上的視覺化

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os
import folium
from folium import plugins
import webbrowser

#python的預設迭代深度為1000,在本例程資料讀取的時候資料長度大於1000,此處應該增大迭代深度
import sys   
sys.setrecursionlimit(10000) #這裡設定迭代深度為一萬 

user = '001'
userdata = 'D:/Geolife Trajectories 1.3/Data/' + user + '
/Trajectory/' filelist = os.listdir(userdata) names = ['lat', 'lng', 'zero', 'alt', 'days', 'date', 'time'] df1 = pd.read_csv(userdata + filelist[0], names = names, index_col=False) df1 = df1.loc[6:, ['lat', 'lng']] df1 = df1.astype(float) #建立以高德地圖為底圖的密度圖 map = folium.Map( location = [df1.lat[6], df1.lng[6]], zoom_start
=5, control_scale = True, tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}', attr='© <a href="http://ditu.amap.com/">高德地圖</a>' ) #建立以騰訊地圖為底圖的密度圖: # map = folium.Map( # location=[df1.lat[6], df1.lng[6]],
# zoom_start=5, # tiles='http://rt{s}.map.gtimg.com/realtimerender?z={z}&x={x}&y={y}&type=vector&style=0', # attr='&copy; <a href="http://map.qq.com/">騰訊地圖</a>' # ) for file in filelist: df = pd.read_csv(userdata + file, names = names, index_col = False) df = df.loc[6:, ['lat', 'lng']] df = df.astype(float) #將DataFrames轉換成list資料型別 #data = np.array(df) #df = data.tolist() #print(df) #在地圖上繪製線 ls = folium.PolyLine(locations = df, color = 'blue') ls.add_to(map) #方法一:在地圖上繪製經緯度座標點 map.add_child(plugins.MarkerCluster([[row["lat"], row["lng"]] for name, row in df.iterrows()])) #方法二:在地圖上繪製經緯度,輸入引數df型別為list #map.add_child(plugins.MarkerCluster(df)) map.save('map.html') #開啟html檔案 webbrowser.open('map.html')