问题标签 [proj]
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.
c++ - “Segfault 将 proj4 与 OpenMP 结合使用”或“如何在 OpenMP 中使用特定于线程的全局变量”
我有大量由 WGS84 坐标定义的对象,我想将它们转换为墨卡托空间。MWE 中未显示其他操作,这使我无法仅以单线程方式执行所有操作。
我目前的代码如下:
但它与heisenbug有段错误。获得带有ulimit -c unlimited
显示pj_transform
问题的核心转储。这并不太神秘,因为一些挖掘表明 proj4 不是线程安全的。
解决此问题的方法是为每个站点的 proj4 创建每个线程上下文。这使我们遇到了问题。
每个线程都需要运行pj_ctx_alloc()
,这将返回一个特定于线程的变量 type projCtx
,然后需要使用它pj_init_plus_ctx()
来使projPJ
对象负责坐标变换。
如何在 OpenMP 中创建特定于线程的全局变量?
(您会想回答“全局变量不好”。我理解这一点,但请注意,删除它们并不会从根本上改变问题。我也厌恶“流浪数据”。在我的实际应用中,至少有六个在我到达之前的中间函数层pj_transform()
:在这种情况下,我倾向于不传递那么深的参数。您可能不同意设计选择,但这不是争论它的正确场所。)
编辑这也不起作用:
编辑
使用:
给出链接器错误:
python - 在虚拟 Python 环境中使用 GIS
这个问题在 GIS Stack Exchange上因离题而被搁置。所以我想我会尝试使用 StackOverflow。
我使用 Python 已经有一段时间了,并且已经接受了虚拟环境是一件好事的想法,因为它们可以防止未来的软件包更新破坏您花费大量时间开发的宝贵代码。我刚刚花了好几天的时间试图让 cartopy 在 Mac 上的 Python 3.6 虚拟环境中工作,使用 fink 安装的 gdal、geos 和 proj4 库(请参阅Python 3.4 在生成一些 - 但不是全部 - 带有分段的 Cartopy 地图时崩溃故障 11)。但是,似乎即使在虚拟环境中,代码仍然依赖于那些外部库。这似乎违背了使用虚拟环境的目的,因为如果更新了外部库,即使虚拟环境中的 Python 包保持不变,它也存在破坏在虚拟环境中开发的任何 GIS 代码的风险。我遇到这种情况的唯一一次是与 GIS 相关的软件包有关(但很明显,它也可能发生在其他领域)。
是否可以为 GIS 创建一个 Python 虚拟环境,该环境最初可以使用外部库和软件构建,但随后是独立的,并且在更改或更新外部库和框架时不受影响?
build - 如何强制 proj4 构建 proj.dll 而不是 proj_4_9.dll,包括使用 cmake 的版本
如何强制 proj4 构建 proj.dll 而不是 proj_4_9.dll,包括使用 cmake 的版本?
我尝试过了
手动覆盖它。然而……没有用。
data-conversion - 为什么我在使用 proj4js 的方法 transform() (wgs84 -> utm-k) 时不能得到正确的值
我想在 proj4js 中得到正确的值转换。
坐标转换值 wgs84 (EPSG:4326) -> utm-k (EPSG:5179)
我试图获得坐标转换值,但我无法获得正确的值。
但其他转换值是正确的。
坐标是韩国的제주도청。
正确值:
不正确的值:
为什么用proj4js转换wgs84->utm-k时不能得到正确的值。
我的来源:
或者
但是当我转换 utm-k -> wgs84 时我可以得到正确的值
无论如何,结果:
python-2.7 - 如何修复从正弦投影重新投影到纬度的shapefile?
我一直在使用 python ogr2ogr 将 MODIS Tiles Grid 从正弦投影转换为纬度投影。
它效果不佳,重新投影的 shapefile 呈现了一些原始形状中不存在的线条,并且会产生许多不匹配。
有什么建议可以解决吗?
c# - 如何使用 PROJ.4 将坐标转换为 LCC
我编写了一个增强现实应用程序,它将对象放置在打印的街道地图上。我知道每张地图每个角落的 GPS 坐标,并且可以计算出在这张地图上放置任何对象的相对值。虽然这适用于地图集格式,但我现在正在集成大型折叠地图(pe France),其中位置偏差变得不可接受。
我在坐标投影方面没有任何经验,所以我发现 proj.4 看起来很完美,并且很高兴找到一个 unity3d 集成。但是无论我尝试什么,我都会得到错误的值(可能是我的错,因为我没有深入了解我在这里所做的事情)
这是我所有其他地图的生成地图的投影(我自己组装了字符串,它可能包含语法错误,但值是正确的)
我想我必须从一个看起来非常相似(至少结果是)的球形 latlon 或 webmercator 投射到 lcc
网商:
拉特隆:
所以我初始化投影,然后转换他的位置列表: WebMercator.Transform(mainMapProj, xValues, yValues);
作为测试数据集,我使用的是法国南部地图的 GPS 坐标:
以及随机城市chereay的坐标
正确投影,坐标应该大致形成一个矩形(打印页面),并且城市应该相对放置在矩形左下角大约(0.1748,0.9044)处。
我得到的价值相去甚远。我不知道我做错了什么以及如何继续。提前感谢您的任何提示。
.net - Msbuild ItemGroup exclude 不适用于通配符
该项目组ItemsFromAnotherTarget
包含:
这个想法是生成另一个项目组BinaryFiles
,其中包含
所以我有以下内容:
所以这会生成所需的项目组。但是如果我们用Exclude
通配符替换它,它就不起作用了。
问题是References
文件夹可能有多个文件夹和 dll,我们需要排除整个References
文件夹。知道如何使用通配符进行过滤吗?
jquery - OpenLayers 3 重新投影矢量图层 (v4.3.2)
问候 GIS 爱好者和 WEB 制作者。我有一个关于预测的问题,更准确地说是在 Openlayers 4 中从 EPSG:3765 重新投影到 EPSG:3857。
在下面的代码中,我试图从 EPSG:3765 重新投影到 EPSG:3857 :
geojson 文件中的坐标以米为单位,如下所示:
我做错了什么?它是geojson坐标格式的问题还是我需要以某种方式重新投影geojson以像第二张图片一样?
更新
从这里您可以下载 geojson 并测试您是否喜欢 https://www.dropbox.com/s/ih1bh8bj4zzgutc/test_1.geojson?dl=0
使用 pavlos 的示例,我编辑了几行,或者更准确地说;我正在尝试使用此代码块加载本地 geojson
但我不断收到这种类型的错误:
代码如下:
更新 3
我相信我更近了一步但仍然没有运气
我用 jQuery 和 AJAX 请求编辑了一些代码,并在 loader 属性中设置了函数。现在代码看起来像这样:
但现在我看不到我的 GeoJSON 功能,它似乎已加载但未在地图上呈现。
我必须指出,如果我从 readFeatures 方法中评论这两行
geojson 确实渲染但在错误的位置,就像在第一张图片中一样。请帮忙..我真的没有更多的眼泪了..
python - 如何从 x,y 笛卡尔坐标 tmerc 投影中获取纬度/经度?
我正在尝试将数据从 OpenDrive 笛卡尔坐标转换为纬度/经度值。对于德国 A9 高速公路上的 pt = [6.714150516498e+05, 5.434880530093e+06],我想知道纬度/经度坐标是多少。
我一直在尝试以这种方式解决它,但我得到了尼日利亚沙漠的纬度/经度坐标。
wgs84 - 使用 proj4 从 WGS84 转换为局部坐标,保留角度和距离
我尝试将 WGS84 点数据从 googlemaps 转换为以米为单位的本地 x,y 参考。我查看了该站点和其他站点上的许多帖子,但是这些元素中没有描述定义本地参考以获得真实距离和角度的方法。
为了进行这种转换,我使用 Proj4.js 库,基于以下说明:
但是,这样做时,我得到的点之间的距离与我在谷歌地图上测量的距离不匹配,所以我认为本地参考的定义存在问题,我无法弄清楚。您对此有任何线索,尤其是关于本地引用的参数吗?示例:我考虑以下几点,代表典型建筑物的轮廓。
上述顺序中两点之间的距离分别计算为7.0m、9.3m、7.5m和11m,利用毕达哥拉公式对点之间的差进行计算。根据谷歌地球上的测量,点 TopLeft - BottomLeft 和点 TopRight - BottomRight 之间的距离应为 10m。同样,根据谷歌地球上的测量,点 TopLeft - BottomRight 和点 TopRight - BottomLeft 之间的距离应为 7.5m。