为什么ol.proj.transform函数在openlayers3

时间:2017-04-14 03:36:40

标签: openlayers

我在openLayers3

中遇到了问题

它的函数名称是'ol.proj.transform'

我想从'EPSG:5186'坐标

更改为'EPSG:4326'坐标
var lonlat1 = ol.proj.transform([111111.1111,222222.2222222],'EPSG:5186','EPSG:4326');

console.log(lonlat1);

lonlat1值为[111111.1111,222222.2222222]

ol.proj.transform无效

为什么功能不起作用?

如何使用ol.proj.transform函数

请帮助我......

2 个答案:

答案 0 :(得分:1)

我猜ol.proj默认不包含EPSG:5186。幸运的是,您可以使用Proj4 library添加自定义投影。

下载proj4.js脚本并将其包含在您的地图页面上。

还包括来自epsg.io的EPSG:5186的定义:

<script src="https://epsg.io/5186.js"></script>

现在,在进行转换之前,请在变量中定义投影:

var koreanProj = ol.proj.get('EPSG:5186');

最后,在转换中使用该变量:

var lonlat1 = ol.proj.transform([111111.1111,222222.2222222], koreanProj, 'EPSG:4326');

答案 1 :(得分:0)

我不熟悉EPSG:5186格式;但是,这是一个似乎有效的类似示例(演示ol.proj.transform()函数按预期工作的情况):

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <script src="ol/v3.18.2/build/ol.js"></script>
 </head>
 <body>
  ol.proj.transform([-85.49675,38.60643333], 'EPSG:4326', 'EPSG:3857');
  <script>
   var lonlat1 = ol.proj.transform([-85.49675,38.60643333], 'EPSG:4326', 'EPSG:3857');
   console.log(lonlat1);
  </script>
 </body>
</html>

在控制台中提供以下结果:

Array [ -9517454.674479812, 4665452.296008711 ]