问题标签 [spatialite]
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.
android - 如何在 Android 上将 Spatialite 与 Xamarin 一起使用
我想在 Android 上使用 Spatialite 而不是普通的 SQLite 和 Xamarin 来管理和显示地理数据。内置 SQLite 不允许加载扩展。我该怎么做?
django - 在 OS X 上安装 Spatialite for python (GeoDjango)
我正在努力为 GeoDjango 安装 Spatialite!
我已经在使用 Homebrew,它通常简单方便,所以我最初尝试按照GeoDjango的Homebrew 说明进行操作。
但这没有安装任何数据库,即 Spatialite。下一步是尝试安装 Spatialite 本身,但 Django 文档没有提供特定于 Homebrew 的说明。
我发现这个教程看起来很完美——一个 Homebrew 和 virtualenv-friendly 安装的 Spatialite for GeoDjango。
但它不起作用......似乎我pysqlite
的链接是与 OS X 附带的非空间启用版本的 SQLite 相关联,而不是我从 Homebrew 安装的空间化版本,当 Django 尝试时出现此错误连接到数据库:
“pysqlite 库不支持 C 扩展加载。SQLite 和 pysqlite 都必须配置为允许加载扩展才能使用 SpatiaLite。”
pysqlite 的作者没有回应我在 Github 上的求助请求,我也没有通过谷歌找到任何东西。
所以我回到绘图板并决定遵循 GeoDjango 文档中的“Mac OS X 特定说明” ......通过安装来自 KyngChaos 二进制包的各种地理库。
文档说“按照上面列出的顺序安装软件包”,但我发现如果不先安装就无法UnixImageIO
安装PROJ
。文档中下载 Spatialite 二进制文件的链接 ( http://www.gaia-gis.it/spatialite-2.3.1/binaries.html ) 已损坏,因此我使用了 KyngChaos 的“Spatialite Tools v4.1”。
继续下一步,我收到此错误:
目前还不确定出了什么问题。
SO上还有其他人已经走了KyngChaos路线,最终得到了我从Homebrew路线得到的相同的“SQLite和pysqlite都必须配置为允许加载扩展”错误。
我发现这张票 #17756用于添加pyspatialite
对 Django 的支持 -pyspatialite
应该是一种更简单的方法,pip install
但不幸的是它也不起作用(请参阅票底部的评论)。
我有点不愿意开始尝试手动从源代码构建所有内容,因为我可能会再次遇到同样的问题,但要花几个小时在谷歌上搜索有关神秘编译器错误、魔术标志和路径等的信息.
我准备放弃,只使用 Postgres/PostGIS。
python - 如何在 Windows 上的 python 2.7 中的 sqlite3 模块中使用/安装 rtree
我正在尝试将 spatialite 数据库与使用 contrib.gis 应用程序(GeoDjango)的 django 项目一起使用。同步数据库时 django 给出错误“没有这样的模块:rtree”。显然,python 2.7.3 附带的 sqlite3 模块不支持 sqlite 数据库中的 rtree。
如何解决这个问题?
ios - iOS 上的 SQLite (Spatialite) 查询适用于 64 位模拟器,但仅此而已
我有一个由 Django 管理命令生成的 Spatialite 数据库,我将其嵌入到 iOS 应用程序中。数据库完美打开,但我发现只有在 64 位设备上运行时,才能在 iOS 上查询数据库。任何其他设备,无论是模拟的还是其他的,都会SQLITE_NOTADB
在调用时产生输出,并sqlite3_prepare_v2
带有错误消息file is encrypted or is not a database
。
显然,生成此数据库的 Mac 是 64 位机器,但 SQLite 数据库应该与位无关,所以我不认为这应该是个问题。也许这不适用于 Spatialite 数据库?sqlite3_open
是否有任何标志可以与任何 SQLite 函数(可能sqlite3_prepare_v2
是pragma
命令)一起使用,以使其以与 64 位拱 iOS 相同的方式读取文件?或者也许有一种方法可以从 django 以更平台兼容的格式生成 Spatialite db?欢迎在这里提出任何建议。
这是我的代码片段,如果有人能发现任何明显的问题:
启动应用程序并在非 64 位 iOS 平台上运行getLockupsForRegion:
会产生日志输出:
以及arm64下的日志输出:
版本:
- 蟒蛇:2.7.5
- 姜戈:1.6
- PySqlite:2.6.3
- Sqlite(在机器上生成 Spatialite db):3.8.1
- Spatialite(在机器上生成 Spatialite db):4.1.1
- Sqlite(在 iOS 上):3.8.1
- Spatialite(在 iOS 上):4.1.1
对此的任何建议将不胜感激!
nosql - 我想知道 Spatialite 是否被视为 NoSQL 数据库?
我想知道 Spatialite 是否被视为 NoSQL 数据库。
什么是 NoSQL?
NoSQL 包含各种不同的数据库技术,其开发是为了响应存储的有关用户、对象和产品的数据量、访问这些数据的频率以及性能和处理需求的增加。另一方面,关系数据库并非旨在应对现代应用程序面临的规模和敏捷性挑战,也不是为了利用当今可用的廉价存储和处理能力而构建的。
NoSQL 数据库类型
文档数据库将每个键与称为文档的复杂数据结构配对。文档可以包含许多不同的键值对、键数组对,甚至是嵌套文档。
图存储用于存储有关网络的信息,例如社交关系。图形存储包括 Neo4J 和 HyperGraphDB。
键值存储是最简单的 NoSQL 数据库。数据库中的每一项都存储为属性名称(或“键”)及其值。键值存储的示例是 Riak 和 Voldemort。一些键值对存储,例如 Redis,允许每个值都有一个类型,例如“整数”,这增加了功能。
Cassandra 和 HBase 等宽列存储针对大型数据集的查询进行了优化,并将数据列存储在一起,而不是行。
NoSQL 的好处
与关系数据库相比,NoSQL 数据库更具可扩展性并提供卓越的性能,并且它们的数据模型解决了关系模型无法解决的几个问题:
大量结构化、半结构化和非结构化数据 敏捷冲刺、快速迭代和频繁代码推动 易于使用且灵活的面向对象编程 高效的横向扩展架构,而不是昂贵的单体架构
解释来自MongoDB 站点
sql - 如何在 select 语句中从连接表中查询多个值?
我在空间数据库中有以下表格:
该表填写如下:
我需要的是以下内容:
我找到了一个类似问题的代码示例(已经适应了我的需要),但它返回了一个错误,我真的不知道我错了:
这可能吗?谢谢你的回答!!
帕特里克
c++ - Building issues with Spatialite
I'm trying to build Spatialite 4.1.1 in Ubuntu 12.04. I'm getting the following build errors while building.
virtualXL.c: In function 'vXL_create': virtualXL.c:264:3: error: unknown type name 'FreeXL_CellValue' virtualXL.c:265:3: warning: passing argument 4 of 'freexl_get_cell_value' from incompatible pointer type [enabled by default] /usr/include/freexl.h:202:24: note: expected 'unsigned char *' but argument is of type 'int *' virtualXL.c:265:3: error: too few arguments to function 'freexl_get_cell_value' /usr/include/freexl.h:202:24: note: declared here virtualXL.c:270:17: error: request for member 'type' in something not a structure or union virtualXL.c:271:39: error: request for member 'value' in something not a structure or union virtualXL.c:272:22: error: request for member 'type' in something not a structure or union virtualXL.c:275:17: error: request for member 'value' in something not a structure or union virtualXL.c:276:22: error: request for member 'type' in something not a structure or union virtualXL.c:277:18: error: request for member 'type' in something not a structure or union virtualXL.c:278:18: error: request for member 'type' in something not a structure or union virtualXL.c:279:18: error: request for member 'type' in something not a structure or union virtualXL.c:280:18: error: request for member 'type' in something not a structure or union virtualXL.c:282:30: error: request for member 'value' in something not a structure or union virtualXL.c:286:16: error: request for member 'value' in something not a structure or union virtualXL.c: In function 'vXL_eval_constraints': virtualXL.c:505:5: error: unknown type name 'FreeXL_CellValue' virtualXL.c:551:10: warning: passing argument 4 of 'freexl_get_cell_value' from incompatible pointer type [enabled by default] /usr/include/freexl.h:202:24: note: expected 'unsigned char *' but argument is of type 'int *' virtualXL.c:551:10: error: too few arguments to function 'freexl_get_cell_value' /usr/include/freexl.h:202:24: note: declared here virtualXL.c:553:12: error: request for member 'type' in something not a structure or union virtualXL.c:554:12: error: request for member 'type' in something not a structure or union virtualXL.c:561:16: error: request for member 'value' in something not a structure or union virtualXL.c:565:16: error: request for member 'value' in something not a structure or union virtualXL.c:569:16: error: request for member 'value' in something not a structure or union virtualXL.c:573:16: error: request for member 'value' in something not a structure or union virtualXL.c:577:16: error: request for member 'value' in something not a structure or union virtualXL.c:587:16: error: request for member 'value' in something not a structure or union virtualXL.c:591:16: error: request for member 'value' in something not a structure or union virtualXL.c:595:16: error: request for member 'value' in something not a structure or union virtualXL.c:599:16: error: request for member 'value' in something not a structure or union virtualXL.c:603:16: error: request for member 'value' in something not a structure or union virtualXL.c:609:12: error: request for member 'type' in something not a structure or union virtualXL.c:616:16: error: request for member 'value' in something not a structure or union virtualXL.c:620:16: error: request for member 'value' in something not a structure or union virtualXL.c:624:16: error: request for member 'value' in something not a structure or union virtualXL.c:628:16: error: request for member 'value' in something not a structure or union virtualXL.c:632:16: error: request for member 'value' in something not a structure or union virtualXL.c:642:16: error: request for member 'value' in something not a structure or union virtualXL.c:646:16: error: request for member 'value' in something not a structure or union virtualXL.c:650:16: error: request for member 'value' in something not a structure or union virtualXL.c:654:16: error: request for member 'value' in something not a structure or union virtualXL.c:658:16: error: request for member 'value' in something not a structure or union virtualXL.c:664:13: error: request for member 'type' in something not a structure or union virtualXL.c:665:16: error: request for member 'type' in something not a structure or union virtualXL.c:666:16: error: request for member 'type' in something not a structure or union virtualXL.c:667:16: error: request for member 'type' in something not a structure or union virtualXL.c:668:16: error: request for member 'type' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c:670:13: error: request for member 'value' in something not a structure or union virtualXL.c: In function 'vXL_column': virtualXL.c:804:5: error: unknown type name 'FreeXL_CellValue' virtualXL.c:819:11: warning: passing argument 4 of 'freexl_get_cell_value' from incompatible pointer type [enabled by default] /usr/include/freexl.h:202:24: note: expected 'unsigned char *' but argument is of type 'int *' virtualXL.c:819:11: error: too few arguments to function 'freexl_get_cell_value' /usr/include/freexl.h:202:24: note: declared here virtualXL.c:821:6: error: request for member 'type' in something not a structure or union virtualXL.c:822:17: error: request for member 'type' in something not a structure or union virtualXL.c:825:38: error: request for member 'value' in something not a structure or union virtualXL.c:828:41: error: request for member 'value' in something not a structure or union virtualXL.c:835:39: error: request for member 'value' in something not a structure or union virtualXL.c:836:23: error: request for member 'value' in something not a structure or union
It looks like a version problem with libfreeXL. Has anyone faced similar issue?
spatialite - Spatialite 4.1.1 中的几何转换
我正在尝试从以下 grometry 转换(参考澳大利亚的地理)
多边形((-33.917172 151.110971,-33.916443 151.112495,-33.917637 151.113276,-33.917783 151.111512,-33.917253 151.111577,-33.9197172)
使用以下查询从 SRID 4326 到 3112
在 spatialite GUI 1.7.1 和 spatialite 4.1.1 中启用了所有 GEOS、PROJ 扩展,但生成的几何图形是
多边形((Inf Inf,Inf Inf,Inf Inf,Inf Inf,Inf Inf,Inf Inf))
为什么会这样?
android - SQLite 绑定参数 - 它们是否仅限于 WHERE 子句?
到目前为止,我已经多次尝试在查询中绑定 SQLite 选择参数,就像最佳实践所建议的那样。但它很少奏效。我很好奇确切的原因。现在我意识到这可能是由 FROM 子句中的子查询引起的。例如...
Java代码类似于...
有人可以确认在 WHERE 子句之外使用参数是否是错误的,或者向我解释这些参数可以放在哪里?
Ps 我实际上使用的是 Spatialite,它是 SQLite 的扩展,但它基于一个纯粹的、未受影响的 SQLite。
sql - GIS缓冲值度数与spatiallite
我是 Spatialite 的新手。我有以下查询:
我实际上想创建 100 米缓冲区并了解其中包含哪些链接。
我可以找到插入的“100”实际上是度数,它给了我在这个范围内的输出。
我也可以在我的查询中输入度数,但是从度数到米/公里的转换在世界各地并不相同。我浏览了许多站点并且能够知道大约 1 度 = 110 公里。但是从 GIS 专家和一些参考站点也可以了解地球上每个极点的不同之处。
例如,在阿尔塔/挪威,用于平面近似的度量 x 和 y 之间的差异是 x 方向上的 34 公里等于 y 方向上的 111 公里。使用地理坐标时,缓冲区看起来与此类似:http:
//extremelysatisfactorytotalitarianism.com/blog/wp-content/uploads/2010/08/tissot_indicatrix_equirectangular_proj.png
我构建了将地理数据转换为几何(X、Y 坐标格式)数据并在 Spatiallite 可以理解的地方进行转换的软件。
我还尝试阅读有关 SRID 的内容,但无法理解如何将其插入到我的查询中。