尝试将使用 openlayers 的基于角度的项目从已弃用的openlayers-npm-package迁移到推荐的ol-npm-package。通过调试,我意识到我之前仍在工作的proj4 集成存在问题。
经过两天的不同方法的尝试,尝试了这个和那个,意识到在库的特殊组合中,问题似乎是由于缺乏新的 ol-package 的类型造成的。
我现在可以确认的是 - 并希望它对其他人有帮助(我还不能评论SO-Answer) - 是,对 proj4 的支持尚不存在于@types/ol:'4.6.2'中,但存在于@类型/openlayers:'^4.6.12'。
因此,利用 proj4 使用依赖项向 openlayers 提供不同的投影
"ol": "5.2.0",
"@types/openlayers": "4.6.12",
Run Code Online (Sandbox Code Playgroud)
将适用于以下代码片段,但ol与@types/olwon't 结合使用:
进口
import * as ol from 'openlayers';
import * as proj4x from 'proj4';
const proj4 = (proj4x as any).default;
proj4.defs([
[ 'EPSG:25832', '+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs' ],
...
]);
Run Code Online (Sandbox Code Playgroud)
构造函数
ol.proj.setProj4(proj4);
Run Code Online (Sandbox Code Playgroud)