因此,這裏是一個可能的解決方案:
首先,你需要找出多點谷歌地圖API如何處理,仍然表現出了線。我認爲這只是一些測試或研究。無論如何,一旦你發現你的魔法點數顯示繪製你的路徑,然後採取該數字,並乘以2/3
。
舉例來說,如果一個很好的路徑需要有說90
點然後計算90*2/3
原因2/3
是下面的循環將返回點的最大數量是平均等於我們用這樣的變量3/2
倍使用。 60
會給我們平均90
地塊。有一種情況下,最多返回的地塊將是(2 * (magical number of points)) - 1
,例如我們平均需要90
分,那麼我們可以在一些極少數情況下有(2*(90*2/3))-1 = 119 points
您只需在實施後進行一些測試,以確保您的魔法分數適用於2/3魔法點數和2 *魔法點數-1的地圖。我希望這不是太混亂......我試着盡我所能解釋。
其餘部分將成爲sudo代碼。你將不得不去適應它爲你連接到MySQL任何語言與:
//get the total number of rows returned
var total_rows = mysql->num_rows;
//calculate max to be 2/3 times your magic number for max plots, i.e. 90
var max_plots = 90*2/3;
//define empty plots array to fill with coordinates
var plots = array();
//check if total_rows is less than max_plots then:
if(total_rows > max_plots){
//find the quotient of the the divident total_rows and the divisor max_plots rounded down to the nearest whole int
var quotient = floor(total_rows/max_plots);
//define variable i to use in loop
var i = 1;
//loop through returned rows
while(row = mysql->fetch_row()){
//return only rows that are the first, last, or are dividable by the quotient evenly; Note: if your language supports it, use the Modulus operator like (i % quotient) == 0 for the last or statement.
if(i == 1 || 1 == total_rows || (i - (i * (floor(i/quotient)))) == 0){
//set plots to use on map
plots[] = array(
'lat' => row['lat'],
'lon' => row['lon'],
);
}
//increment counting variable
i++;
}
// else if total_rows less than or equal to max_plots retrieve all plots
} else {
while(row = mysql->fetch_row()){
plots[] = array(
'lat' => row['lat'],
'lon' => row['lon'],
);
}
}
這可能不是最好的方式,因爲它仍然需要檢索所有從數據庫中的行,但它確實解決了如何只在Google地圖上均勻間隔地打印選定的最大數量。
注意:請確保您的查詢通過自動遞增鍵或其他方式對行進行排序,以使得這些圖將按順序輸入到數據庫中。
最詳細的地圖將是一個地圖(2 * magic_plot_number) - 1
和你最不詳細的地圖將包含magic_plot_number
或如果更低,total_plots
的數量。這就是說,8小時跟蹤會繪製一條路徑,每7分鐘51秒,總計61分,超過8小時,使用魔術積分號碼90
。越多的點越接近2/3 * the magic plot number
我希望這可以幫助你解決這種情況。
不是8 * 60 * 6 = 2,880,因爲它每10秒只有一秒不是每秒? – amaster
您是在地圖上顯示TON引腳還是僅顯示連接引腳的線?您可以嘗試並平滑線條,移除其他所有針,如果它們不在視圖中,則從地圖中刪除一些針。我將它們乘以1E6後存儲GPS座標,大多數地圖API需要它們爲長而不是雙倍。 – JustinDanielson
y你是對的:) 我會繼續編輯我的愚蠢錯誤,你對這個問題的2部分有什麼想法嗎? – Harshwardhan