2016-03-07 50 views
0

在Python中存儲經度和緯度值的理想數據類型是什麼?採取GTFS一個stops.txt爲例,在Python中存儲經度和緯度值的理想數據類型是什麼?

stop_lat,stop_lon 
48.82694828196076,2.367038433387592 
48.82694828196076,2.367038433387592 
48.829830695271106,2.376120009344837 
48.829830695271106,2.376120009344837 
48.83331371557845,2.387299704383512 
48.83331371557845,2.387299704383512 
48.840542782965464,2.3794094631230687 
48.840542782965464,2.3794094631230687 
48.844652150982945,2.37310814754528 

對應What is the ideal data type to use when storing latitude/longitudes in a MySQL database?和高度upvoted答案是:

使用MySQL與GIS的空間擴展。

+1

浮動是不是? –

回答

2

我覺得namedtuple是去,按名稱容易訪問的方式,像元組(對於精度使用浮點值)用於:

In[4]: from collections import namedtuple 
In[5]: coords = namedtuple("Coords", ['x', 'y']) 
In[6]: coords 
Out[6]: __main__.Coords 
In[7]: coords(1,2) 
Out[7]: Coords(x=1, y=2) 
In[8]: coords(1.235445,2.2345345) 
Out[8]: Coords(x=1.235445, y=2.2345345) 
In[9]: coords(1.2354451241234214,2.234534512412414134) 
Out[9]: Coords(x=1.2354451241234214, y=2.2345345124124143) 
0

我假設你需要6位小數。所以,float會保存你的數據。或精度設置爲6的小數?

0

你通過你要存儲的數據量要求存儲緯度和經度和jugdging,我會去花車元組的列表:

data = [ 
    (48.82694828196076,2.367038433387592), 
    (48.82694828196076,2.367038433387592) 
] 

的元組 - 當然 - 在任何時候都被列表替換。特別是因爲它只能存儲2個浮動塊,訪問它並不是那麼昂貴,你根本不會注意到這個差異。那麼這將產生對嵌套列表:

data = [ 
    [48.82694828196076,2.367038433387592], 
    [48.82694828196076,2.367038433387592] 
] 
1

可以定義FLOAT(N,d),其中缺省值是(10,2),其中圖2是小數的數量和10是數字的總數包括小數,小數精度可以達到24位浮點和53位DOUBLE(N,D)。