2

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

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

  1. 存储内存中占用的空间(显然越少越好)。
  2. 易于修改文件(最好能够识别和更改单个坐标,而不是由于更改而重写整个文件)。
  3. 速读。
  4. 速写。

我已经对如何设置工作有了一些想法(例如,由自定义类管理的简单文本格式、序列化、访问数据库(我只能使用访问数据库)……),但最好的解决方案是什么?

4

2 回答 2

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,仅使用访问数据库会极大地限制您的能力。
我会考虑两个表:AreaPoints具有简单的一对多关系。

于 2012-06-12T16:49:11.633 回答
1

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

OGR 项目支持多种格式的 GIS 样式矢量数据,几乎所有这些格式都支持存储具有您所追求的大部分特征的区域要素。这里的“较新”格式之一是ESRI 的文件地理数据库格式,它通过 OGR 的 C# 包装器在 .NET 中得到支持。

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

于 2012-06-12T16:57:38.370 回答