问题标签 [proj4js]

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 投票
0 回答
273 浏览

leaflet - 无法执行坐标的投影变换,用于 Leaflet

我可以加载传单地图并添加数字:https ://jsfiddle.net/user3493503/sdLtvrew/

我喜欢使用另一个基础层,并且可以用一个键来完成。https://jsfiddle.net/user3493503/s9fyxem4/5/

您可以在这里临时获取自己的密钥:http ://webkartet.no/getSOkey.php

但是,我无法转换坐标,以便可以添加图形(多边形和图像)。我花了很多时间试图弄清楚这一点。我应该如何前进?

这是我的尝试:

附加信息:XMLschema

0 投票
1 回答
209 浏览

leaflet - 如何从用户输入的 ArcGIS 投影数据中计算出分辨率数组

我有一个基于 Leaflet 的地图解决方案,它使用用户提供的 ArcGIS 地图配置(我不知道它会是什么,他们将使用自己的 ArcGIS 服务对其进行自定义)。问题是投影几乎可以是任何东西,我需要使用 Proj4Leaflet 相应地配置地图的 CRS。我遇到的问题是我不确定如何计算比例/分辨率数组。用户正在输入这些值:投影键、Proj4 字符串、原点、边界、缩放级别。

因此,例如(是的,我知道 EPSG:3857 是标准的,我可以只使用 L.CRS.EPSG3857,但它是如何使用 Proj4Leaflet 设置相同内容的一个很好的例子):

有了这个,我认为我有足够的能力为它设置一个 L.Proj.CRS:

除了分辨率数组之外,我拥有我需要的一切,我不确定如何根据给定的数据进行设置,并且很难找到答案让我指向正确的方向。

0 投票
1 回答
786 浏览

webpack - 将 proj4js 与 webpack 捆绑会导致“位置 0 处 JSON 中的意外标记 m”

我尝试将 proj4js (2.5.0) 作为 ES6 模块包含在 webpack (4.27.1) 项目中。

这导致了这个错误:

我能做些什么来绕过这个错误?


查看 proj4js github 页面上的问题报告,似乎 json-loader 执行了两次,因为 proj4js 明确需要 package.json:

proj4js/lib/version.js:

0 投票
1 回答
903 浏览

javascript - 我无法将几何图形转换为 openlayers 5.3 中 proj4.defs 中定义的投影

我有一个使用 openlayers V5.3.0 的节点映射应用程序。当我尝试将几何图形从 EPSG:4326 转换为使用 proj4.defs 定义的投影时,我收到此错误消息:TypeError: Cannot read property 'getCode' of null

如果我将 openLayers 更改为 4.6.4 版,则转换几何图形的代码将起作用。

有没有其他人遇到过这个问题?

以下 HTML 演示了该问题。

将以上内容粘贴到 html 文件中并在浏览器中显示。

取消注释这一行:

并注释掉以下行:

要查看正确的结果:

0 投票
1 回答
401 浏览

javascript - 尝试重新编码 OpenLayers 函数时出现重新投影问题

由于某些库(prototype.js 和 pro4js)之间的冲突,我需要重写 OpenLayers 的函数。但即使我尝试使用与他们的 github 上完全相同的代码,结果也与我在不重写函数的情况下得到的不同。

在我的情况下,想要重新编码的功能register()来自ol/proj/proj4

这是使用此函数的重投影示例:

但是如果我重新编码这个函数(根据这个来源:https ://github.com/openlayers/openlayers/blob/master/src/ol/proj/proj4.js ),我定义的投影对除了完全模糊地图之外的 ol 地图(但我想这是我的主要问题的副作用,因为模糊地图大部分时间是由于重投影问题):

有人可以向我解释我哪里错了吗?当然,如果您对从库中重写函数有更好的想法,我也会喜欢它!

顺便说一句:出于好奇,我试图面对的冲突是因为prototype.js 为对象添加了额外的属性。我对这个框架知之甚少,我没有手或删除它的选择。由于该函数使用ol.proj.proj4.register()检索投影代码Object.keys(),因此它实际上检索到的代码比那些代码多得多,因为原型.js。当然会产生错误。

0 投票
1 回答
3016 浏览

leaflet - 传单:TypeError:坐标必须是有限数

我正在尝试使用带有特定投影 EPSG:2169(Luref 或卢森堡)的 Leaflet。我看到如果我不使用像 WGS84 这样的“标准”投影,我必须使用 Proj4Leaflet 并将其引用到地图上。

这就是我现在所做的:

当我用地图加载页面时,控制台给了我这些错误:

经过一番谷歌搜索,我发现我必须定义“分辨率”选项。我不确切知道它是如何使用的,但我从一个样本中获取,现在是 CRS 的外观:

现在加载地图时,控制台中出现此错误:

而现在我不知道下一步该做什么。这里有人已经遇到过这种问题吗?

我看一下这个推荐的帖子:尝试在 Leaflet 中使用 EPSG:3857 但我没有找到我想要的。我的目标是在 EPSG:2169 中准备一张地图,这样我就可以从这个投影中的 GeoServer WMS 检索 GeoJson 数据。

提前谢谢了。

0 投票
1 回答
141 浏览

javascript - proj4 将世界坐标转换为自定义本地框架,也就是如何设置 proj.def()

这是芝加哥北河中心的世界坐标,41.892571, -87.630712 这里是我希望我的坐标系基于的地方41.881984 -87.629437(循环中的北河以南,麦迪逊和州 st)我需要一个proj.def(<help_here>)这样,当我改造河流时北坐标到我的新坐标系,从原点向北 x 米,向西 x 米(在麦迪逊和州)

proj4.defs('chicagoFrame', "+proj=merc +lat_0=41.881984 +lon_0=-87.629437 +units=m +no_defs")这是我迄今为止尝试过的,但我得到了 [ -1323.1922680083949, 5117321.60498216 ] 这已经很遥远了。意思是它在原点以西 1.3 公里和以西 5,000 公里

正确的答案应该是向北约 1 公里,向西约 0.1 公里

我的目标是获得本地坐标,所以我可以说“用户距离最近的邮局 x 米”,而且我知道的很少,我不认为你可以相互减去坐标,即使你这样做需要将度数转换为米

0 投票
1 回答
190 浏览

openlayers - 在 Openlayers 6 / Proj4js 中使用特定的 nadgrid

我在使用 proj4js 将矢量数据从一个坐标系重新投影到另一个坐标系时遇到问题。

数据源使用 Gauss Kruger 2 Projection ( EPSG: 31466 ),我想将其转换为EPSG:3857并显示它。通常它工作正常,但与在背景中显示区域照片的 WMS 服务相比,有一个小的偏移量(可能约为 1-2 米)。

在 QGIS3 中添加这些图层具有相同的输出,但我可以在其中切换矢量图层的基准转换

并且输出看起来像预期的那样。DE_DHDN (BeTA, 2007) nach ETRS89

但不幸的是,我无法在 proj4/ol 中使用/嵌入这个网格。有没有办法将它与这些框架或具有类似方法的示例(即与其他坐标系)一起使用?我的谷歌搜索技能已经结束。:)

有趣的事实:

  • 角 9.1.4
  • 开放层 6.3.1
  • 项目 4 2.6.2
  • EPSG:25832源重新投影效果很好

tl;dr:是否可以在 Openlayers/Proj4js 中使用特定的 nadgrid?

问候

0 投票
0 回答
93 浏览

angular - 未加载 Highchart 地图 - Angular & proj4

我正在尝试使用 highchart 加载地图图表,但地图不会显示。地图似乎已正确加载。我正在使用 Angular,它是官方的 highchart 包装器。proj4 也需要有经纬度地图数据。

我做了一个堆栈闪电战:https ://stackblitz.com/edit/highcharts-maps-proj4

非常感谢 :)

0 投票
1 回答
494 浏览

javascript - 使用 EPSG:25832 投影在 Leaflet 中垂直对齐 TMS 瓷砖

我正在使用带有 Proj4Leaflet 的 Leaflet 来处理 25832 中的图块。该应用程序相当简单:我试图将 EPSG:25832 中的图块叠加到全尺寸底图上。我已经从 tilemap 元信息中复制了各个分辨率和来源。我面临的问题是地图没有对齐,一旦我放大图块,就没有按正确的顺序放置。我很感激这里的任何支持(顺便说一下,是一个使用 openlayers 的工作示例)。

我想我在这里做错了什么:

...使用来自https://mapproxy.bba.atenekom.eu/tms/1.0.0/privat_alle_50_mbit/germany的瓷砖信息。

之后我添加了一个平铺层

并将它们添加到地图..

可以在这里找到最少的代码:https ://jsfiddle.net/6gcam7w5/8/

不正确的对齐