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

openlayers - 如何在 Proj4js 中使用 OpenLayers 3

我正在开发一个地图查看器项目,并在此之前使用过 openlayers 2。现在我必须使用 OpenLayers 3,并且地图查看器应用程序应该支持许多不同的投影,因为我有来自不同来源和投影的 wms 和 wfs 图层。我找到了使用 openlayers2 和 proj4js 的示例。但我找不到使用 ol3 和 proj4js 的明确示例。你的建议是什么?

0 投票
0 回答
224 浏览

coordinate-systems - Proj4js,向前和向后的转换 - 大不准确

我使用 Proj4js v.2.3.3 来转换两个投影之间的坐标。我在 spatialreference.org 上找到的投影定义,因此我认为没关系。如果我将点坐标(pstart)从第一个投影转换到第二个并返回到第一个(pend),那么 pend 和 pstart 差异太大 - 在其中一个坐标中大约 70m。我的代码如下所示:

之后挂起等于:

我做错什么了吗?有人可以在这个问题上帮助我吗?谢谢大家对我的问题感兴趣

0 投票
2 回答
6202 浏览

javascript - Proj4js - 你可以在没有区域的情况下将 Lat/Long 转换为 UTM 吗?

我正在尝试使用 Proj4js 执行一些坐标转换,但是关于如何使用它的信息很少。

我想要做的是将纬度和经度转换为 UTM 坐标,但我不知道该区域是什么。这应该很容易,因为经度决定了区域,并且如果您知道默认情况下会出现该区域。

我尝试在 Proj4js 中执行此操作,但出现错误提示

“未捕获的类型错误:未定义不是函数”

我的代码看起来像这样:

我只是不知道是否可以在不包含区域的情况下执行此操作。如果需要,我可以先计算区域,然后将其放入字符串中,但我试图保持简单。

如果有人知道关于示例的任何好的纯 js 资源(不一定使用 OpenLayers 3),我也将不胜感激。

谢谢!

0 投票
2 回答
1195 浏览

javascript - 如何将 proj4js 包含到您的项目中

我真的不明白如何将 proj4.js 包含到我的项目中。按照我应该添加的文档

在代码中。但是如果我将它添加到 .html 文件中,我的 .js 文件(我将在其中使用 proj4js 函数)将看不到它。而且我无法将它添加到我的 .js 文件中,因为它是 .js 文件而不是 .html 文件。你是怎么做到的?谢谢

0 投票
1 回答
1311 浏览

javascript - Angular 提供者必须从 $get 工厂方法返回一个值

所以我的角度工厂有一个问题,我已经尝试解决了一段时间。我想我的角度知识在这里还不够。

我将在此处发布的大部分代码都是来自我没有编写的解决方案的另一部分的重用代码。所以这可能是我无法弄清楚的原因。这也是我做过的第一家工厂。

我收到错误“Provider 'proj4js' must return a value from $get factory method.” 老实说,我不知道我拥有的 factory.$get 函数是做什么的。那是我没有写的代码的一部分。Proj4js 是一个将坐标从一个系统转换到另一个系统的库。所以我们从服务器加载对象以在谷歌地图上显示它们,其中一些不使用纬度经度。所以这就是为什么我们需要用 proj4js 转换它们。如果该信息对任何人都有帮助。

但我知道工厂方法需要返回一个对象。但我不是已经这样做了吗?也许是那个 factory.$get 函数是问题所在,正如我所说我不知道​​它的目的......但删除它并没有帮助^^

另外,不要介意它被称为 coodinateTransformerService 而不是 coordinateTransformerFactory。我首先使用了一项服务,只是在我让它工作之前不想重命名它。

编辑:这可能会有所帮助。在引发错误的 angular.js 中:

结果未定义。名称是 proj4js,工厂是同事制作的:

0 投票
0 回答
1831 浏览

leaflet - 带有 WMS 和自定义投影的传单地图

我已经使用来自 WMS 服务的 Leaflet 和图块实现了一个地图。他们提供了一个预测列表,其中一个可用于标准 Leaflet EPSG:4326。

然而,地图看起来有点扭曲,我认为其他投影之一会更好。地图供应商使用 EPSG:32624,但我似乎无法正确投影。

这是完整列表:EPSG:32624, EPSG:32619, EPSG:32620, EPSG:32621, EPSG:32622, EPSG:32623, EPSG:32624, EPSG:32625, EPSG:32626, EPSG:32627, EPSG:4326,每股收益:3413,每股收益:3575

我在这里有一个小提琴:http: //jsfiddle.net/uyrv2j7f/2/

有两张地图,上面一张正在使用所需的投影,但没有真正起作用。底部的一个是使用一个有效但扭曲的投影。

我很确定,我需要编辑 crs 的配置。但是为了什么?在哪里可以找到信息?

我在这里找到了第一部分:http: //spatialreference.org/ref/epsg/wgs-84-utm-zone-24n/ - 其余部分我已经使用其他投影作为示例。

希望有人可以帮助我。

或者:Leaflet 通常对我来说就像一个魅力,并且是该案例的首选库。但是如果有人能够使用不同的库来帮助解决问题,那么我会很感兴趣.....

更新: tinproject 给出了一些指示,我去看了,这个版本更接近想要的结果: http: //jsbin.com/rehoxu/5/edit ?html,css,js,output

我仍然希望输入有关如何真正定义自定义投影的变量的输入...

0 投票
1 回答
452 浏览

javascript - 坐标转换javascript库Pro4js错误结果

我正在尝试使用Proj4js来转换一对(sweref99tm,rt90,kkj3,wgs84)坐标。出于某种原因,我得到了错误的结果。是我的代码导致错误的结果,请检查并帮助我修复它。

谢谢。

链接:

我的代码

Proj4Js 库

用于验证的在线计算器

0 投票
0 回答
589 浏览

javascript - 使用 proj4js 自定义投影

我需要重新定义类似 Web Mercator Projection 的投影,以使投影以 180° 为中心,而不是以 0° 为中心。

为了做到这一点,我正在使用 proj4js

由于 EPSG:3857 投影的定义如下:

我认为我想做的投影会被定义如下:

为了尝试我的新投影,我一直在围绕其中心的两点之间画一条线

显示的结果不是我所期望的,而是在我的点之间有一条线并穿过新的原点,这条线反而走错了路。

jsfiddle:http: //jsfiddle.net/tlebras/gchhmhd7/2/

我的投影有什么问题?我需要解决什么问题?

非常感谢

0 投票
1 回答
130 浏览

proj4js - 函数与字符串投影定义之间的投影异常

我们最近将我们的定义从第一种格式切换到第二种格式,因为 OpenLayers 在第一种格式上抛出了异常。

使用的定义: 旧的:

新的:

奇怪的是,后者确实正确地转换了点。我们的点似乎是错位的,而不是特定的偏移量,它们似乎完全是错误的定位。我们认为这是由于towgs84财产。现在的问题是,第一种格式的解析/处理方式与第二种格式有何不同?有什么区别?(我在这两种情况下都使用相同的代码和最新版本的 proj4js)。

0 投票
2 回答
1326 浏览

leaflet - Proj4Leaflet not working with various tile servers

I followed the introduction on the home page of Proj4Leaflet to create a basic slippy-map with their example projection (code below). This is working without issue, but is using the tile servers of the company that maintains Proj4Leafet, specifically: http://api.geosition.com/tile/osm-bright-3006/{z}/{x}/{y}.png

When I try to use an alternative tile server, such as Mapbox's https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken} (where I use my own token), CartoDB's http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png or OSM's http://a.tile.openstreetmap.org/{z}/{x}/{y}.png the map simply doesn't render and I get a blank grey map.

Is it possible to use other tile servers with Proj4Leaflet, or is there something in my configuration that is incompatible with them?