问题标签 [libspatialindex]

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 回答
322 浏览

c++ - 使用空间索引库批量加载 R* 树

在使用空间库成功构建 R* 树后,将记录一一插入 250 万次,我试图通过批量加载创建 R* 树。我实现了 DBStream 类以迭代地将数据提供给 BulkLoader。本质上,它调用以下方法并为 Bulkloader 准备一个 Data(代码中的 d 变量)对象:

我初始化 DBStream 对象并通过以下方式调用批量加载:

批量加载调用我的 next() 和 hasNext() 函数,检索我的数据,对其进行排序,然后在构建阶段分割故障。有什么线索吗?是的,错误是:

0 投票
2 回答
701 浏览

c++ - C++ 空间索引库:从磁盘加载/存储主内存 RTree

我通过以下方式在空间索引库的帮助下创建了一个主内存 R* 索引(DBStream 实现了 bulkLoading 的接口)

我的数据是只读的,也就是说,我只想构建树一次,保存它,并在每次使用我的程序时从持久存储重新加载。显然,我可以自己保存和加载 memStorage,但是如何从中重新创建 RTree?

0 投票
2 回答
458 浏览

c++ - (重新)使用空间索引库加载 R 树

我正在使用空间索引(http://libspatialindex.github.com/)库批量加载 R 树:

以下是有关已构建树的信息的输出:

现在我正在尝试加载我保存在磁盘中的内容:

并且树只有一个节点(树的输出是:)

我做错了什么?为什么我不从磁盘加载整个树?

0 投票
1 回答
242 浏览

c++ - 作为对象传递给 MyDataStream 流(argv[1])的输入数据文件的格式应该是什么

我正在使用“libspatialindex”库来创建 R-tree 索引。我的数据是二维的,具有以下值:

数据描述如下:

我正在尝试将上述数据批量加载到 R-Tree 中。为此,我使用来自 libspatialindex 的以下测试代码。但是,我不知道作为对象传递给 * MyDataStream stream(argv[1]);的输入数据文件的格式应该是什么。*

我正在使用的测试代码是:

0 投票
0 回答
217 浏览

c++ - 在 C/C++ 中批量加载时出错

我正在使用 libspatialindex ( http://libspatialindex.github.io/ ) 库来构建 r-tree:我正在使用以下代码批量加载 r-tree 中的 (latitude,longitude)。我需要批量加载给定地点的(id、纬度、经度)。以下代码执行批量加载。但我不知道为什么它不接受输入文件——没有关于 libspatial 索引的文档,因此我很困惑。

对于输入,我使用以下文件:

但我收到以下错误:

有人可以帮我看看我哪里出错了!!

0 投票
1 回答
565 浏览

c++ - libSpatialIndex:在磁盘上加载/存储索引

我有一堆点,我需要对它们进行最近邻搜索,所以我使用的是 libSpatialIndex。代码非常简单,库为我提供了将数据存储在磁盘上的选项,但我无法加载它。

编码:

程序在此之后立即结束。确实在内存中创建了两个文件,“indexTest.dat”8.8MB 和“indexTest.idx”0kB 但是如果我在初始化后立即进行查询或检查索引中的元素数量,它会失败并且只有一个节点树。

我已经看过这些问题:( 重新)使用空间索引库加载 R 树

C++ 空间索引库:从磁盘加载/存储主内存 RTree

但是我没有成功,因为我使用的是索引,当我直接使用 RTree 时,数据插入速度要慢 1000 倍。

0 投票
1 回答
2669 浏览

r-tree - 如何在 Google Colaboratory 上安装 libspatialindex

为了使用 Python 高效地分析空间数据,我使用了 rtree 空间索引库,依赖于 libspatialindex C 库。

我能够使用!pip install rtree.

正如预期的那样,这还不够,因为需要先安装 libspatialindex,import rtree结果如下所示:

OSError: Could not find libspatialindex_c library file

我不确定是否以及如何在 Google Collaboratory 中安装外部库。按照https://github.com/libspatialindex/libspatialindex/wiki/1.-Getting-Started我设法运行!curl -L http://download.osgeo.org/libspatialindex/spatialindex-src-1.8.5.tar.gz | tar xz但我没有配置权限: !spatialindex-src-1.8.5/configure

/bin/sh: 1: spatialindex-src-1.8.5/configure: Permission denied

0 投票
2 回答
3995 浏览

python - OSError:在 Mac OSX 上找不到 libspatialindex_c 库文件

系统:Mac OSX

我是 Python 的新用户,目前正在探索 GIS。尝试使用 geopandas 读取形状文件,但我得到:OSError:找不到 libspatialindex_c 库文件

正常使用 Python 3.7,但由于 geopandas 在这方面存在依赖性问题,因此按照此处的建议在 Python2 上运行。

我在这里所做的是使用mac终端,使用python2创建新环境并在那里安装geopandas并尝试读取形状文件。

conda create -n mytest python=2.7 geopandas -c conda-forge

源激活 mytest

导入地理熊猫

geopandas.read_file('Random_points_twitter.shp')

0 0 5.27735 50.25398 0

1 1 3.29896 51.32356 1

2 2 3.29896 51.32356 2

我可以在终端中成功阅读此内容。但是在浏览器中,它返回一个错误。

我所做的是首先在我的新环境上安装 jupyter 并在浏览器上运行笔记本(代码如下)

(mytest) conda install jupyter

(mytest) jupyter-notebook

在带有新笔记本的浏览器上,尝试导入和读取形状文件(类似于我在终端中所做的),但它给了我这个错误:

#

() ----> 1 导入 geopandas 中的 OSError Traceback (最近一次调用最后一次)

/Users/rldy/anaconda/lib/python2.7/site-packages/geopandas/ init .py in () ----> 1 from geopandas.geoseries 从 geopandas.geodataframe 导入 GeoSeries 2 从 geopandas.io 导入 GeoDataFrame 3 4 .file 从 geopandas.io.sql 导入 read_file 5 导入 read_postgis

/Users/rldy/anaconda/lib/python2.7/site-packages/geopandas/geoseries.py in () 10 11 from geopandas.plotting import plot_series ---> 12 from geopandas.base import GeoPandasBase, _series_unary_op, _CoordinateIndexer 13 14

/Users/rldy/anaconda/lib/python2.7/site-packages/geopandas/base.py in () 12 13 try: ---> 14 from rtree.core import RTreeError 15 HAS_SINDEX = True 16 except ImportError:

/Users/rldy/anaconda/lib/python2.7/site-packages/rtree/ init .py in () ----> 1 from .index import Rtree 2 3 from .core import rt 4 5 version = '0.8. 3'

/Users/rldy/anaconda/lib/python2.7/site-packages/rtree/index.py in () 3 import pprint 4 ----> 5 from . 导入核心 6 导入 ctypes 7 尝试:

/Users/rldy/anaconda/lib/python2.7/site-packages/rtree/core.py in () 123 124 如果 lib_name 为 None:--> 125 raise OSError("Could not find libspatialindex_c library file") 126 127 rt = ctypes.CDLL(lib_name)

OSError: 找不到 libspatialindex_c 库文件

#

我的 conda 列表(如下)已经安装了 libspatial,但是当使用浏览器在 Jupyter Notebook 上运行时给我这个错误。有任何想法吗?

0 投票
2 回答
255 浏览

python - 你如何在 Heroku 中安装 Rtree?

我正在 Heroku 上部署一个 GIS 应用程序。我在我的电脑上开发了它,当我部署它时,rtree 不见了。我无法通过 pip 安装它,因为 pip 安装是错误的,正如 rtree 开发人员自己所说的那样。我怎样才能将这种依赖关系融入heroku?

0 投票
2 回答
433 浏览

c++ - 是否可以在不使用“undef”的情况下重新定义宏?

我正在尝试理解libspatialindex源代码。作为 C++ 的新手,我很难理解宏的概念。该库的 C API 包装器sidx_api.cc直接和间接地包括许多头文件,其中两个似乎定义了相同的宏,涉及与动态库的接口,没有“undef”:

工具.h

sidx_export.h

我相信重新定义没有“undef”的宏是有问题的,例如,如这里这里所讨论的。我在这里错过了什么吗?谢谢。