问题标签 [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 投票
1 回答
233 浏览

data-conversion - 为什么我在使用 proj4js 的方法 transform() (wgs84 -> utm-k) 时不能得到正确的值

我想在 proj4js 中得到正确的值转换。
坐标转换值 wgs84 (EPSG:4326) -> utm-k (EPSG:5179)

我试图获得坐标转换值,但我无法获得正确的值。

但其他转换值是正确的。

坐标是韩国的제주도청。

正确值

不正确的值

为什么用proj4js转换wgs84->utm-k时不能得到正确的值。

我的来源:

或者

但是当我转换 utm-k -> wgs84 时我可以得到正确的值

无论如何,结果:

不正确的值图像

0 投票
1 回答
291 浏览

javascript - 如何解决此传单错误?getPixelWorldBounds()

有谁知道在尝试创建传单地图时可能导致以下错误的原因是什么?它与自定义 CRS 有关。由于各种原因,我不能发布很多代码,所以如果有人能指出我正确的方向,我将不胜感激。

this._map.getPixelWorldBounds() 为空

0 投票
1 回答
4170 浏览

javascript - 尝试在 Leaflet 中使用 EPSG:3857

我正在尝试让传单使用 EPSG:3857 作为输入坐标系。我使用 porj4leaflet 来实现这一点。我已经像这样定义了我的地图实例:

当我尝试运行它时,我得到TypeError: coordinates must be finite numbers. 你可以在这里看到整个小提琴:https ://jsfiddle.net/asdpinspdai/fckbpq0a/

根据我从文档中了解到的情况,像这样设置 crs 应该允许我以 EPSG:3857 格式将坐标传递给传单。我错过了什么吗?

这里的任何帮助都非常非常感谢。谢谢

0 投票
1 回答
2829 浏览

javascript - Proj4Leaflet 在 Leaflet 中从 4326 转换为 3857

我从上周开始研究传单,这个问题让我很生气。

数据库返回坐标以创建 Leaflet 标记(使用默认 Map.CRS EPSG3857),因此我决定使用 proj4js 将数据库坐标 4326 转换为 3857:

这些[-8515407.581757482, 382049.6844491562]不代表正确的点。

如果我反转最初的 4326 坐标 [3.429960207,-76.495207812] 并直接设置为标记,它显示完美(没有任何 proj4 转换)。

1. 为什么这种转换在 Leaflet 上不起作用,或者我应该怎么做才能让它起作用?

2.为什么反转坐标似乎有效?

3.应该如何正确解决问题?

0 投票
1 回答
3042 浏览

highcharts - 如何导入 Proj4js 以与 Highmaps 一起使用?

我有一个 Vue 应用程序,它使用带有vue-highcart组件的 highchart 来绘制地图。我需要根据纬度和经度在这张地图上绘制点,根据Highmaps 文档,我必须使用 Proj4js。在普通的旧 javascript 中,我会简单地使用 a<script>将其放入我的页面,但我无法弄清楚如何以 ES6 方式进行操作。我尝试了以下方法:

它不起作用。它默默地失败了。地图已绘制,但地图上未绘制任何点。如果你在这个小提琴上移除 Proj4Js,你会得到相同的行为:http: //jsfiddle.net/r9hugxsu/

有什么帮助吗?提前致谢。

编辑: 我知道我可以简单地将script标签放在我的 index.html 上。但我只是想知道是否有一种 ES6 方式来执行这种“包含依赖脚本”。

0 投票
0 回答
898 浏览

highcharts - 如何获取自定义地图的 hc-transform?

我有一个来自巴西的 GeoJson,它是 HighMaps 巴西官方地图的更详细版本。在这个 JSON 中,我将状态划分为中间区域。

当我试图在这个 GeoJson 上画一个点时,我收到一条消息,告诉我这个功能只支持官方的 highmaps 地图。阅读文档我发现我应该hc-transform在我的 geojson 上创建一个对象。我认为使用hc-transform官方 HighMaps 巴西地图所使用的相同是有意义的,当我这样做时,它还不错:它给了我相同的点与fromLatLonToPoint()方法但是当我使用该方法toPixels()获取“画布”时位置(并在上面画一些东西)它给了我不同的价值。

我使用的代码是这样的(它适用于巴西官方高图):

我说的 GeoJson 你可以在这里找到:https ://github.com/Menighin/HighmapsExperiment/blob/master/geo/mesorregiao.json

查看 Highmaps 官方巴西地图我可以看到每个多边形也有一些 highcharts 属性(hc-middle-xhc-middle-y等)。这有什么区别吗?如果没有,我做错了什么?

编辑

事实证明我hc-transform似乎不正确,正如我们在这个小提琴上看到的那样:http: //jsfiddle.net/0vm8a4x3/

如果我们取消注释第 8 行,我们可以看到贝洛奥里藏特市并未绘制在 Mesoregion 地图上的正确位置。

那么,我怎样才能得到hc-transform正确的呢?

0 投票
1 回答
2683 浏览

javascript - Proj4JS - 转换 2.3.3 与 2.4.3

为什么在 Proj4JS 中使用相同代码的 2.4.3 转换坐标完全不同?看到这个小提琴。

如果你交换左边的proj4js资源的顺序。您会看到 2.3.3 转换准确,而 2.4.3 转换完全错误。

我还提供了 2 个示例,您可以在这个问题中使用它们。

http://jsfiddle.net/8ztfhes0/17/

编辑 - 所以在做更多的研究。我发现这个问题实际上出现在 2.3.16 版本中。直到 2.3.15 都很好。

提交评论 = 2.3.16“添加更好的 tmerc 投影”

2.4.3 样本

2.3.3 示例

0 投票
2 回答
1761 浏览

angular - angular & migration openlayers to ol & proj4js

Tried to migrate an angular-based project using openlayers away from deprecated openlayers-npm-package to recommended ol-npm-package. By debugging i realized that i had a problem with the previously still working integration of proj4.

After two days of following different approaches, trying this and that, realizing that in that special combination of libraries the problem seems to result from a lack of typings for the new ol-package.

What i now can confirm - and hope it helps others (i can't comment to SO-Answer yet) - is, that the support for proj4 is not yet existing in @types/ol:'4.6.2', but in @types/openlayers:'^4.6.12'.

So utilizing proj4 to provide different projections to openlayers using dependencies

will work for the following code-snippet, but ol combined with @types/ol won't:

imports

constructor

0 投票
0 回答
142 浏览

javascript - 传单:来自自己的图块 {z} 的分数和不规则缩放级别

我正在使用自己的平铺图像在 Leaflet 中显示。我知道可以使用分数缩放级别,例如 {1, 1.25, 1.5},以便 Leaflet 根据分数自动放大图块。不过,我想做的是使用带有分数缩放级别的图块。这是在不增加四倍图块数量的情况下添加细节。

一个例子:

  • {z} = 3; {x}_max = 4; 16 块瓷砖
  • {z} = 4; {x}_max = 8; 64 块瓷砖
  • {z} = 5; {x}_max = 16; 256 块瓷砖
  • {z} = 5.39; {x}_max = 42; 1764块瓷砖

'http://{s}.somedomain.com/blabla/{z}/{x}/{y}.png'

缩放由目录名称 {z} 给出。

如果我用 5.39 命名我的目录,它将不起作用。根据我设置 maxZoom 的方式,它使用 {z} = 5.39 作为 {z} = 6(意味着它缩放到错误的位置)或根本不使用。是否有可能让它与小数一起使用?

并且,除此之外,缩放级别之间是否可能存在不规则增量,例如 {1, 1.2, 1.8, 2, 3.7, 5} ...?

希望有解决办法。

0 投票
1 回答
328 浏览

utm - proj4.js 如何将 UTM 转换为 EOV 坐标?

我使用 javascript 将 UTM 转换为 WSG84 lon lat,其中 utm_zone 包含 UTM 区域编号。

但是如何参数化以将 UTM 格式直接转换为 EOV (epsg:23700)?