我有問題。我有500k記錄的數據庫。每個記錄存儲緯度,經度,動物種類,觀察日期。我必須在mapkit視圖之上繪製網格(15x10),顯示這個網格單元中物體的濃度。每個單元格都是32x32的盒子。iPhone硬計算和緩存
如果我在運行時計算它非常慢慢。 有人想法如何緩存它?在內存或數據庫中。
數據結構:
觀察:
- 緯度
- 經度
- 日期
- 正金
- 一些其他不重要的數據
屏幕示例:在該區域中的物種
alt text http://img6.imageshack.us/img6/7562/20091204201332.png
每個紅色框opocasity節目計數。我現在使用
代碼: 數據 - >從數據庫中選擇,它是在地圖區域內的所有觀察
for (int row = 0; row < rows; row++)
{
for (int column = 0; column < columns; column++)
{
speciesPerBox=0;
minG=boxes[row][column].longitude;
if (column!=columns-1) {
maxG=boxes[row][column+1].longitude;
} else {
maxG=buttomRight.longitude;
}
maxL=boxes[row][column].latitude;
if (row!=rows-1) {
minL=boxes[row+1][column].latitude;
} else {
minL=buttomRight.latitude;
}
for (int i=0; i<sightingCount; i++) {
l=data[i].latitude;
g=data[i].longitude;
if (l>=minL&&l<maxL&&g>=minG&&g<maxG) {
for (int j=0; j<speciesPerBox; j++) {
if (speciesCountArray[j]==data[i].specie) {
hasSpecie=YES;
}
}
if (hasSpecie==NO) {
speciesCountArray[speciesPerBox]=data[i].specie;
speciesPerBox++;
}
hasSpecie=NO;
}
}
}
mapData[row][column].count = speciesPerBox;
}
}
另外,您確定您的數據庫密鑰適合您的查詢嗎? – 2009-12-04 18:55:42
這是你的意思嗎? – 2009-12-04 19:56:43