问题标签 [geopackage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - 是否可以将 postgresql 数据库上的查询转换为地理包文件
我正在使用 postgis 研究 postgresql 数据库。我是从包含地理信息的数据库中生成 csv 文件,但我现在需要生成地理包文件。我对此进行了搜索,但没有找到任何直接制作类似内容的工具。我知道我可以使用 gdal 从 csv 转换为 geopackage 文件,但我不需要这样做。我需要直接从数据库生成地理包文件。任何人都可以帮助我吗?
谢谢
sqlite - Geopackage:将 BLOB 转换为坐标
我正在使用用于 FireFox 的 SQLite-Mananger 插件来编辑我的本地地理包数据库。
几何图形以 BLOB 形式存储在各种表中。现在我想将不可读的 BLOB 格式编码为人类可读的坐标。
我已经这样尝试过了:
出现以下错误:
我猜是因为它是一个本地数据库,而 STAsText 函数适用于 SQL-Sever。
我也试过了:
但是有了这个我也没有坐标。
r - 如何在 R 中使用 rgdal 读取带有 FID 列的地理包文件
我有一个以地理包格式(gpkg)保存的点矢量图层。rgdal
我使用库将它加载到 R 中。问题是我无法获取带有fid
列(唯一特征标识符)的属性表。
以上两种方法均无效。以下是示例:
如您所见,该fid
列已丢失。它甚至指出,在加载数据时:
“它有 8 个文件”,但有 9 个。我怎样才能得到该fid
列?
这是示例 gpkg 文件:dist_points.gpkg
spatialite - 如何在GPKG中使用spatialite创建带有几何列的表?
我想用spatialite 创建一个矢量GPKG。
在文档的帮助下(此处:http ://www.gaia-gis.it/gaia-sins/spatialite-sql-4.3.0.html#p16gpkg ),我创建了一个sql
如下所示的脚本:
这是我的输出:
我做错了什么 ?
python - geopandas 可以获取地理包(或其他矢量文件)的所有图层吗?
我想用 geopandas 读取地理包文件,它可以读取第一层或带有 layer='' 参数的特定层。但是它怎么能读取所有层呢?可能是这样的:
c# - 尝试写入 GeoPackage 数据库时出现“数据库已锁定”错误
我正在使用 OGR/GDAL C# 托管 API 写入 GeoPackage 数据库,当我尝试将数据库同步到磁盘时,我一直遇到“数据库已锁定”错误。经过大量实验,这似乎只有在我首先打开 GeoPackage 进行读取、关闭数据库(处理数据源)、重新打开数据库并尝试写入时才会发生。Web 搜索表明,如果读取的 GDAL 和 SQLite 对象在尝试写入之前未处理,则会发生此错误。但是,我认为我正在正确处理所有托管对象,所以我想知道是否有一个我缺少的调用。任何帮助将不胜感激。我已经包含了一个示例控制台应用程序,它显示了我遇到的错误。它创建了一个新层,但如果我尝试更新现有层,我会得到同样的错误。我正在使用 GeoPackage v1.2,
示例控制台应用程序:
python - Geopandas - 尝试更改单元格中的值仅在列为 NoneType 时才有效
我正在尝试打开一个 Geopackage 以在其中添加一列(成员数)并根据特定区域中的成员数填充这些单元格。
如果我将列创建为“无”,则一切正常,除了 QGIS 不将这些值识别为整数而是字符串(在符号化所有内容时尝试分类时会导致问题)。
如果我将其更改为将列创建为整数,则不会填充这些值,并且每个单元格的值都为“0”(标准整数值)。
使用这段代码,单元格将填充字典“agg”中的值(仅当在字典中找到另一列“name”的值时)。如果我将第 2 行中的“无”更改为“int()”或“0”,则所有单元格的值都为 0,并且不会用字典中的相应值填充。
因此,通过上面的代码,我得到了这样的结果,问题是 QGIS 无法将 member_count 识别为整数列。
将第 2 行中的 None 更改为 'int()' 或 '0' 后,我得到以下信息:
r - st_write 拒绝覆盖 R 中 geopackage 中的图层
使用sf
R 中的包,我正在读取存储在地理包中的一系列层,过滤它们,然后将它们重新保存为新的地理包。
当我设置我的脚本时,我测试了其中一个层并且它工作正常,但是当在层列表上运行相同的代码时,它失败了,因为测试层已经存在。的文档st_write
同时具有附加和覆盖参数,但设置为替换而不是附加(append = FALSE
或overwrite = TRUE
)会导致它失败并出现错误
st_write.sf (., dsn = gpkg_out, layer = layername, overwrite = TRUE) 中的错误:无法识别的参数覆盖
st_write.sf(., dsn = gpkg_out, layer = layername, append = FALSE) 中的错误:无法识别的参数追加
我更新了我的 sf 包副本,但它仍然失败并出现同样的错误。我通过删除文件系统中的文件找到了解决方法,但是如果我只是尝试替换一层,这将是有问题的。
有谁知道这是否是一个已知问题或一种使其替换而不是附加图层的方法?
我的代码:
r - 从 GeoPackage 中删除图层
我正在尝试使用sf
包从 GeoPackage 文件中删除矢量图层。“删除”是指永久删除而不是覆盖或更新。我知道该delete_layer
选项,但据我了解,这仅用于删除图层,然后再将其替换为同名图层。
不幸的是,我已经使用非标准编码为 GeoPackage 编写了一个名称层,这实际上使整个 gpkg 文件在 QGIS 中不可读。因此,我正在尝试找到通过 R 将其删除的解决方案。
database - 从 dbbrowser 中的 geopackage 中为 sqlite 选择几何
我正在将 dbmanager 用于加载了空间模块的 sqlite,并且我正在尝试读取我之前从 qgis 3.12 导出的地理包。
我在下面执行这两个选择并使用十六进制函数获取“几何”,并将它们作为假定的 WKT 文本(我不确定)但是当我将其导出为 csv 以再次读取 qgis 时,它不起作用。我从 sqlite 文档中阅读了一些示例,将其选择为 AsText 或 AsBinary 或 qgis 中的其他可读类型,但它只返回空字段。
这里的功能:http ://www.gaia-gis.it/gaia-sins/spatialite-sql-4.3.0.html#p16gpkg
第一种情况:
SELECT cd_geocodi, nm_bairro, renmeddom, SRID(geom), hex(geom) from setorcengeom_rj20171016 where renmeddom > 5000 group by cd_geocodi order by nm_bairro DESC limit 10;
第二种情况:
SELECT cd_geocodi, nm_bairro, renmeddom, SRID(geom) as epsg, AsText(CastAutomagic(geom)) AS geometry from setorcengeom_rj20171016 where renmeddom > 5000 group by cd_geocodi order by nm_bairro DESC limit 30;