我发现spacespaceite比shapefile更为有用,因为它没有shapefile的局限性,而且它也可移植。这里的许多人都使用shapefile交换数据,甚至专家也不知道这种新格式。
可以代替shapefile使用吗?
请仅关注那些便携式格式,即可以使用USB记忆棒进行交换的格式。不能选择GML,GeoJSON,KML,CSV,并且不能在GIS中直接对其进行编辑。
所以现在的问题更像是使用GEOPACKAGE优于GEODATABASE的优势?
#1 楼
Shapefile是GIS矢量数据文件交换的最低公分母:发送shapefile的档案,您几乎可以保证有人可以从中构建基本的GIS。一切都在一个文件中;每层混乱中都没有shp / shx / dbf / idx / prj。
可以以VIEWs和TRIGGER的形式包含逻辑和数据。
它们是真实的(如果有一些限制,主要是在多用户访问中)数据库系统,不需要数据库管理技能。
但是有一些缺点:
/>
不是每个人都可以使用它们。如果需要花键和曲面,请在其他地方查看。
#2 楼
Shapefile绑定到一种类型的几何图形,因此您可以为一个项目获得一堆文件。由于使用的是古数据库格式,因此字段名也受到限制。并根据需要命名字段(差不多)。spacespaceite的唯一缺点是更新周期快,这使得读取或写入以其他(较旧)版本编写的数据变得困难。 />
#3 楼
除了scruss的答案外,shapefile还具有一些局限性:最大字段名称长度为10个字符
最大文件大小(.dbf / .shp)为2GB
数字属性存储为字符(整数/浮点数),导致舍入等潜在问题
NULL值在系统之间的解释不同
#4 楼
对我而言,最大的优势是单一文件格式的关系数据库系统。使用空间功能来创建视图的好处很多。考虑这样一种情况:给定一组点,您的方法是基于属性对点进行缓冲,然后测试这些缓冲与其他地理特征的重合性。将此工作流与shapefile一起使用通常需要将每个操作作为另一个shapefile持久化。现在,如果您更新了给定的任何数据,则必须再次运行整个链。更不用说在某些环境下,您可能不知道更改输入数据。当您依赖SQL视图进行几何操作时,这不是问题。 (我知道有一些工具可以解决shapefile的这类问题,但问题是关于spatiaLite数据库。)#5 楼
一切都在一个文件中也是一个缺点:如果发生故障,则更难修复。文件大小似乎也从3.7 MB开始,甚至对于几乎空的数据集也是如此。
它们似乎也仅支持文本,整数和浮点字段。没有日期/时间或布尔值字段。至少在QGIS 1.8中进行测试时
评论
Spatialite确实具有日期/时间类型,因为它具有以下任何类型:日期和时间数据类型。
–scruss
13年8月23日在15:51
您链接到的页面上引用的“ SQLite没有预留用于存储日期和/或时间的存储类”。是的,可以在文本字段中存储任何内容,但仍然只是文本,需要对其进行解析才能对其进行数学运算。
– Uffe Kousgaard
13年8月23日在15:54
不,你不会;您可以进行查询,例如select * where date <'1980-01-01'并为您完成数学运算。
–scruss
13年8月23日在17:03
这意味着文本将被解析。替代方法是将日期存储为引擎直接理解的数字。没有风险,您会在4月31日遇到任何其他非法值。对于文本,必须先将其转换为数字,然后才能应用<运算符。
– Uffe Kousgaard
13年8月23日在17:40
@UffeKousgaard:在.dbf文件中,数字(整数/浮点数)和日期时间存储为字符,因此在解析的情况下,shapefile在这里毫无优势。
–奥文德
13年8月24日在23:35
评论
好的帖子,但是关于空间索引有两点。 Shapefile也可以在空间上建立索引,其次,您必须显式加入Spatialite空间索引,这可能导致一些笨拙的查询。我仍然更喜欢在Spatialite数据库中移动数据,但是将其导入PostGIS数据库以利用其更强大的查询计划程序。
–HeyOverThere
13年8月23日在15:33