存储点列表的最佳方式

时间:2012-06-12 16:47:15

标签: .net

我想存储(大容量存储)点列表;更准确地说,它是一个包含未定义(但不超过200)个坐标组的数字的列表,其中每个组代表区域(矩形)。此区域可以是例如Rect结构。

对我来说最好的方法是什么:
按重要性排序:

  1. 存储内存中的占用空间(显然越少越好)。
  2. 轻松修改文件(最好能够识别和更改单个坐标,而不是因为更改而重写整个文件)。
  3. 速读。
  4. 速写。
  5. 我已经对如何设置工作有了一些想法(例如由自定义类管理的简单文本格式,序列化,访问数据库(我只能使用访问数据库),...),但是什么是最好的解决方案?

2 个答案:

答案 0 :(得分:1)

SQL Server具有可用于存储多边形的本机空间类型格式

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

对于操作,您可以将数据加载到对象中以读取/修改/验证每个多边形中的新点。

编辑: Jason Follas在这里对空间类型进行了很好的探索:
http://jasonfollas.com/blog/archive/2008/03/14/sql-server-2008-spatial-data-part-1.aspx

编辑:我看到编辑的OP因为他只能使用访问数据库,所以我的答案不再适用......但我会保留原样,以防有人发现这个问没有这样的数据库限制。

对于OP,仅使用访问数据库会限制您的能力。
我会考虑两个表:区域,只有简单的一对多关系。

答案 1 :(得分:1)

这正是大多数GIS存储格式所解决的问题。有许多不同的格式,都有各种优点和缺点。

OGR项目支持many formats用于GIS样式矢量数据,几乎所有这些都支持存储具有您所追求的大部分特征的区域特征。其中一个“较新”的格式是ESRI's File Geodatabase格式,在.NET中通过OGR的C#包装器支持。

或者,许多数据库系统(如SQL Server,PostgreSQL,Oracle等)支持直接在数据库中存储空间数据。根据您的需要,这可能有点“重量级”,但将支持非常高的性能和可扩展性。