问题标签 [ogr]

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

r - 如何打开解压缩的地图文件

我正在尝试读取压缩地图文件以用作轮廓上的地图叠加层,但我似乎无法解压缩该文件。以下是我的命令;

我想在我的情节中使用 zmb2 作为底图。zip 文件和脚本位于同一目录中。以下是我得到的:

无法打开层但我确实看到 unzip 命令有效,因为我看到 4 个带有 dbf、prj、shp 和 shx 扩展名的新文件

任何帮助将不胜感激。

0 投票
1 回答
1075 浏览

gis - 局部投影的 WKT 等效项

我正在尝试使用 gdal 从多个局部坐标系中投影一些基本形状。ArcGIS 支持这些坐标系,但最终我只是想使用 gdal(和 proj4)将这些几何图形转换为基本的纬度/经度(EPSG:4326)。这是 gdalsrsinfo 返回的内容:

如果我尝试使用 ogr 来翻译点 shapefile,我会收到以下错误:

proj4 是否支持本地坐标系?有什么建议我应该用于 PROJECTION 参数吗?

谢谢。

0 投票
1 回答
369 浏览

python - OGR 几何更改浮点数

我在 OGR 中创建一个多边形并在 Python 中为其添加坐标。添加时不允许更改我的坐标是必须的,但是它们会更改,我不明白为什么。这是我的例子:

现在,如果我打印多边形,我会收到:

例如:

显然已经添加了浮点数,我不明白为什么。帮助表示赞赏。

我是怎么做到的?因为我只需要 WKT 格式,所以我连接了一个字符串:

0 投票
0 回答
512 浏览

python - python匀称地绘制多层

有一组(纬度,经度)点可以简单地用 可视化matplotlib.pyplot.scatter(list_of_longitudes, list_of_latitudes)。但我想将这些点绘制在恰好位于 shapefile 中的道路网络之上。如何在一个地图/图形中简单地将两个文件与 Python 一起绘制?

特别是在寻找像 Shapely 这样的东西

0 投票
2 回答
366 浏览

c++ - 在 Boost.Geometry rtree 中存储 OGRPoint

我正在尝试使用 Boost.Geometry 注册 OGR 几何类,以最终在 Boost.Geometry RTree 中使用它们。为此,我遵循了 Boost.Geometry 文档中的教程/示例,并使用BOOST_GEOMETRY_REGISTER_POINT_2D_GET_SET宏注册了 OGRPoint:

我的简单测试驱动程序只是创建了一个带有 Indexable 的 RTree boost::geometry::model::box

但是,我遇到了一个编译错误,归结为 Boost 中的一个断言:

还有什么我需要做的,比如实施 Boost.Rangeboost::geometry::model::box<OGRPoint>吗?

0 投票
1 回答
1026 浏览

c++ - 如何为 OGRPoint 和 OGRLineString 注册 Boost.Geometry 距离策略?

我正在创建一个允许将 OGR 的类与 Boost.Geometry 一起使用的包装器。到目前为止,我已经创建了必要的迭代器外观并使用 Boost.Geometry 注册了 OGR 的几何类(、和OGRPointOGRLineStringOGRLinearRingOGRPolygon

现在,我想使用 OGR 类谓词,例如OGRGeometry::Distance()with boost 而不是 Boost.Geometry 使用的那些谓词(例如,股票 Boost.Geometry 1.57.0 没有任何地图投影的概念)。它适用于boost::geometry::distance(OGRPoint, OGRPoint),但不适用于bg::distance(OGRPoint, OGRLineString)或任何其他点集合。我的猜测是因为 Boost.Geometry 将线串、环和多边形视为要迭代的有序点集合,因为编译器会尝试实例化以下模板:

完整的错误信息如下:

因此,我尝试提供专门针对 的模板专业化struct boost::geometry::detail::distance::default_strategy<OGRPoint, OGRLineString, boost::geometry::pointlike_tag, boost::geometry::linestring_tag, false>,但没有成功——同样的错误消息盛行。

这是我的代码:

如何“拦截”导致使用迭代器/范围概念并OGRGeometry::Distance()直接使用的模板实例化?

0 投票
2 回答
299 浏览

c++ - 为写入指针 API 创建一个行为良好的迭代器

我必须为仅具有旧式“写出指针”访问器的 API 创建一个迭代器。有问题的 API 是 OGR 的;有问题的课程之一是OGRLineString(供参考:http ://www.gdal.org/classOGRLineString.html )。该类存储了许多点,可以使用以下 getter 方法访问:

为了使用访问器,创建一个新OGRPoint对象并将指向它的指针传递给方法,该方法将数据写入分配的对象。例如:

现在,我想实现一个(类似 STL 的)迭代器。即使我在各处放置大警告标志,说明提供的sOGRPoint是不可修改的(即const,要求我传递一个自定义分配的实例,但迭代器必须分配一个。另外,当迭代器本身被删除时,迭代器返回的 s 不应该被删除。此外,不存储为 复制的实际实例,而是存储 x/y/z 坐标的简单结构;所有需要的附加信息(例如,空间参考)都复制到访问器中。因此,一个简单的OGRLineStringOGRPoint const &operator*() constOGRPointOGRPointOGRLineStringOGRPointgetPoint#define private publichack 无济于事。

是否有任何理智/干净的方法来添加迭代器而不修改原始源OGRLineString?例如,有没有办法向原始类添加特性或修改它,就像 Ruby 的“猴子补丁”特性那样?或者观察容器的生命周期以清理OGRPoint迭代器返回的实例?

0 投票
0 回答
925 浏览

java - 如何在java gdal中使用ogr2​​ogr

我想ogr2ogr -f "GeoJSON" destination.geojson source.geojson -s_srs EPSG:3068 -t_srs EPSG:4326用 java-gdal 编写代码。我试图通过查看这个示例来了解它应该如何工作,但由于 ogr2ogr 有很多用途,我无法完全确定与我相关的内容。这是我的尝试:

poOutputSRS.SetFromUserInput( destSRS );我在(即第 99 行)收到此异常:

0 投票
0 回答
282 浏览

d3.js - ogr2ogr的D3js投影EPSG代码?

我使用 d3js 进行矢量投影,例如d3.geo.mercator()

我还将 ogr2ogr 用于光栅投影,例如epsg:3857

因为我必须完美匹配两者......

有没有一个地方可以为每个d3js 投影找到它必须关联到哪个EPSG 投影代码?

0 投票
1 回答
697 浏览

python - osgeo.org 中 ogr.FieldDefn('field', ogr.OFTInteger) 的字段类型错误

我对 osgeo.org for python 使用版本有疑问

我想使用 osgeoMapInfo File从 MongoDB 转换。

MapInfo File构建,但该字段number_of_romms的类型是Integer(12),而我希望它是Integer并且无法找出问题所在。

有没有办法解决这个问题?

mif 文件如下: