问题标签 [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.

0 投票
1 回答
228 浏览

java - 内部文件在 Android 上不“可用” - File.exists() 对任何文件都返回 false

我正在尝试访问存储在内部存储中的 2.45GB Geopackage 文件,但每当我尝试访问它时,我都会收到“文件不存在”错误。

gpkg 文件正在通过 DownloadManager 下载到外部存储中,然后再复制到内部存储中,但是当我调用 时new File(getContext().getFilesDir(), "roads.gpkg").exists();,我得到“假”返回。不仅如此,当我跑步时

该文件不显示。

为了确保这不是来自 DownloadManager 或我的复制方法的意外行为,我手动将文件复制到“Android/data/uk.co.alexks.greenroutes/files”,以及一个 11 字节的 txt 文件,'test .txt',使用我的 Windows 笔记本电脑。同样,对于上面的 listFiles() 代码输出,这些文件都没有返回 trueFile.exists()或显示(见下文)。

这是我尝试访问文件时的完整代码:

这是 Logcat 输出:

和预期的输出:

我的 Android 清单具有以下权限:

对于它的价值,我知道我应该使用 File.isFile() 来检查文件是否有效,但这在这里没有帮助。

任何帮助将不胜感激!:)

0 投票
1 回答
853 浏览

python - 使用 Fiona 模块在 Python 中编写地理包属性数据

我在 fiona 模块方面的经验很少(从今天开始!)我有一个名为 building.gpkg 的地理包,其中有一个名为“id”的字段,在生产时为 NULL。

我正在尝试使用 fiona 模块编写一个 python 脚本,以根据存储在 SQL Server 中的另一个表中可用的 ID 填充其 ID。

虽然我已通过 fiona 成功导入并读取 bldg.gpkg,但我正在努力将数据写入 id 列:

这是示例代码:

这是我得到的错误:

我查看了 fiona 模块中的 collection.py 和 drvsupport.py 并安装并支持了 GPKG 驱动程序是否有我遗漏的东西?还是写作方法不对?

我在 Windows 10 上运行 Python 3.8.1。

谢谢

0 投票
2 回答
507 浏览

java - 如何将 X 和 Y 转换为 lat 和 long

我有一个名为的表IK_TEMP,它包含名为 data, range 的列。

RANGE 字段(二进制/BLOB)字段已使用来自 arcGIS 的二进制编码并保存在数据库中。 http://www.geopackage.org/spec120/#gpb_format

我想使用 java 解码这个 RANGE 字段。

在这里,我尝试了fromBytes 方法

我正在获取对象中xy坐标和几何geometry类型,但是我怎样才能从中获得经纬度

在他们在 JS reff中给出的一个例子中。

但我想在 java 中进行相同的转换。这是另一个例子

例子

0 投票
0 回答
196 浏览

java - 使用java解码blob几何

在我的表中,我有两列,Data并且Range.

范围字段是来自 ArcGIS 的二进制编码。这种格式应该是地理空间行业的标准格式。

https://www.gaia-gis.it/gaia-sins/BLOB-Geometry.html

http://www.geopackage.org/spec120/#gpb_format

需要使用srs_id来解码 Range 字段。

我需要解码这个范围字段。我怎样才能解码它。

我看过例子,但它没有用。

0 投票
0 回答
475 浏览

java - 将 X 和 Y 坐标转换为 lat 和 long 的公式

我有一个名为的表IK_TEMP,它包含名为 data, range 的列。

RANGE 字段(二进制/BLOB)字段已使用来自 arcGIS 的二进制编码并保存在数据库中。

http://www.geopackage.org/spec120/#gpb_format

我想使用 java 解码这个 RANGE 字段。

在这里,我尝试了fromBytes 方法

我正在获取对象中xy坐标和几何geometry类型,但是我怎样才能从中获得经纬度

在他们在 JS reff中给出的一个例子中。

但我想在 java 中进行相同的转换。

这是另一个例子

例子

0 投票
1 回答
42 浏览

sql - 多表中的一列中的 SQL 检查或唯一性

我有一个“唯一”列,“GID_New”,它位于多个表中。有没有办法检查它是否在 SQL 中的 QGIS 项目中的所有表中都是唯一的?

是否可以在一个 SQL 搜索中完成而不将表合并为一个然后运行类似的东西

然后检查计数 >1

我也想知道非唯一 GID_New 来自哪个表。

数据在 QGIS 的地理包中,因此代码需要在 QGIS SQL 实现中工作。

0 投票
1 回答
67 浏览

java - 如何采取清单来自 mil.nga.sf.Geometry

在我的 mil.nga.sf.geometry 对象中,我得到了geometry type, hasM, hasZ and point.

在我的调试中,我能够看到几何对象包含点对象列表,但我无法将它们放入列表中。

我能够获得方法之类的getGeometryType, hasM(), hasZ()方法,但是当我尝试说它geometry.getPoints 没有显示该方法时

在我的几何对象中,我得到了列表,但我无法将它们放入列表中。

我怎样才能把它list< point>列入清单。

0 投票
1 回答
672 浏览

python-3.x - 从内存/zipfile 中读取一个 gpkg 文件

我知道可以通过在内存中提取并读取它来从 zipfile 中读取 shapefile: https ://gis.stackexchange.com/questions/250092/using-pyshp-to-read-a-file-like -来自压缩档案的对象

Fiona 还可以从内存中读取 shapefile: https ://pypi.org/project/Fiona/1.5.0/

但是,我还没有找到以相同方式读取 .gpkg (geopackage) 的方法。

如何从 zip 文件中提取地理包,然后将其提取到 geopandas 地理数据框中?

0 投票
0 回答
155 浏览

java - 在 MacOS 上将 spatialite 与 xerial/sqlite-jdbc 一起使用

我在加载 Java 中的空间扩展以读取 GeoPackage 时遇到一些问题,我有以下代码段:

这导致一个[SQLITE_ERROR] SQL error or missing database (dlopen(mod_spatialite.dylib, 10): image not found)

如果我改为

结果是Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

有什么我想念的吗。我已经安装sqlite3spatialite使用了 Homebrew,这就是spatialite我正在尝试使用的版本。

0 投票
0 回答
393 浏览

python-3.x - 在 python3.x 中使用 geopandas 从文件 GDB 导入地理数据时出现问题

我正在编写一些代码来基于边界框选择和导出地理数据。我要选择的数据来自覆盖整个荷兰的巨大文件 GDB (16GB) 中的 2 个单独层。我使用边界框来避免在进行选择之前读取整个数据集。

此方法在应用于 gpkg 数据库时效果很好,但对于文件地理数据库,处理时间要长得多(对于 200x200 米的选择,处理时间为 0.2 秒与 300 秒)。我正在使用的文件 GDB 为我正在阅读的图层设置了空间索引。我正在使用 geopandas 来阅读和选择。您将在下面找到“Adres”层的示例:

我在监督什么吗?或者这是从巨大的文件 GDB 导入时的限制?我在这里找不到明显的错误。目前,解决方法是另一个脚本,它可以在 gpkg 中导入和转储我需要的层。问题是这运行了 3 到 4 个小时(gpkg 结果几乎是 6 GB)。我不想继续这样做,为了处理这个数据集的新版本,有必要每个月左右做一次。

好奇你们想出什么办法。