2012-06-12 120 views
2

我想存儲(海量存儲)點列表;更確切地說,它是一個列表,其中包含一個未定義的數字(但不超過200)的座標組,其中每個組代表一個區域(矩形)。這個區域可以是例如Rect結構。存儲點列表的最佳方式

什麼是最好的方式對我來說:
爲了重要性:

  1. 在存儲器(當然越少越好)所佔用的空間。
  2. 輕鬆修改文件(最好能夠識別和更改單個座標,而不是由於更改而重寫整個文件)。
  3. 速度閱讀。
  4. 速寫。

我已經有一些關於如何設置工作的想法(例如由自定義類,序列化,訪問數據庫管理的簡單文本格式(我只能使用訪問數據庫),...),但什麼是最好的解決方案?

+1

這是一個非常主觀的問題。 「最佳」將取決於你的個人喜好。一個簡單的二進制解決方案將是最有效的內存,但它也是編碼和調試更困難的選項之一。文本佔用更多的內存,但是更容易閱讀。 XML是編程更簡單的解決方案之一,但它的內存效率要低得多。 – JDB

+1

@ Cyborgx37這是一個主觀的問題,因爲它是一個主觀的工作。無論如何,我寫了_best_的意思。 – gliderkite

+0

你想把它作爲本地文件存儲,還是數據庫好嗎? –

回答

1

這正是大多數GIS存儲格式所解決的問題集。有很多不同的格式可供選擇,各種優點和缺點。

的OGR項目支持many formats爲GIS風格矢量數據,幾乎所有這些支持的區域特徵量存儲與大多數的你後的特性。其中一個「較新」的格式是ESRI's File Geodatabase格式,它通過OGR的C#包裝程序在.NET中受支持。

另外,許多數據庫系統,如SQL Server和PostgreSQL,Oracle和其他支持直接在數據庫中存儲空間數據。這可能有點「重量級」取決於您的需求,但會支持非常高的性能和可擴展性。

+0

GIS代表什麼?你有沒有提及OGR的C#包裝? – gliderkite

+0

@gliderkite GIS:http://en.wikipedia.org/wiki/Geographic_information_system OGR的C#包裝是自動生成的,也是OGR項目的一部分。它們包含在這裏的二進制文件中(http://www.gisinternals.com/sdk/)儘管「文檔」基本上只是C++文檔。 –

1

SQL Server有一個原生空間類型的格式,其可以被用來存儲多邊形

http://technet.microsoft.com/en-us/library/bb964711
http://technet.microsoft.com/en-us/library/bb895267.aspx

對於操作,則可以將數據加載到一個目的是讀/修改/驗證新點在每個多邊形。

編輯:傑森Follas具有空間類型這裏的一個很好的探索:
http://jasonfollas.com/blog/archive/2008/03/14/sql-server-2008-spatial-data-part-1.aspx

編輯:我看到在編輯的OP他只能用一個訪問數據庫,所以我的答案不再適用...但我會保持原樣,以防其他人發現此問題沒有這樣的數據庫限制。

對於OP,只使用Access數據庫限制了你的能力頗有幾分。
我會考慮兩個表格:區域積分與一個簡單的一對多關係。