首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenLayers-3 ol.proj.transform不支持自定义投影

OpenLayers-3 ol.proj.transform不支持自定义投影
EN

Stack Overflow用户
提问于 2015-07-15 05:10:18
回答 1查看 1.8K关注 0票数 0

我正在努力让变换与自定义投影一起工作。我的地图在新西兰横向墨卡托(EPSG:2193)。当我点击地图时,我想将坐标转换回EPSG:4326 (经度/经度)。下面是我声明投影、设置map和click事件处理程序的地方:

代码语言:javascript
复制
<script src="http://epsg.io/2193.js"></script>
<script src="http://epsg.io/4326.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.6/proj4.js"></script>   

var nztmproj = new ol.proj.Projection({
  code: 'EPSG:2193',
  extent: [827933.23, 3729820.29, 3195373.59, 7039943.58]
});
ol.proj.addProjection(nztmproj)
var map = new ol.Map({
  target: 'map',
  view: new ol.View({
    projection: nztmproj,
    center: [1824728.56,5534935.14],
    resolutions: [4233.333333,3175,2116.666667,1058.333333,529.1666667,264.58333333,132.2916667,92.60416667,66.14583333,39.6875,26.45833333,19.84375,13.22916667,9.260416667,6.614583333,5.291666667,3.96875,2.645833333,1.984375,1.322916667,0.661458333,0.264583333,0.132291667],
    zoom: 19
  })
});
map.on('click', function(evt) {
  var coord = evt.coordinate;
  var mygeom = new ol.geom.Point(coord);
  mygeom.transform(ol.proj.transform(nztmproj, 'EPSG:4326'));
  var newcoord = mygeom.getCoordinates();
  var lon = newcoord[0];
  var lat = newcoord[1];
  var element = overlay.getElement();
  element.innerHTML = lon + "," + lat;
  overlay.setPosition(coord);
  map.addOverlay(overlay);
});

当我尝试在地图上单击时,我得到一个空值: destinationProjection is TypeError

EN

回答 1

Stack Overflow用户

发布于 2015-07-16 05:45:18

如果您要设置一个jsfiddle,您将在

代码语言:javascript
复制
ol.proj.addProjection(nztmproj)

正确:

代码语言:javascript
复制
ol.proj.addProjection(nztmproj);

不确定,你想用这个做什么:

代码语言:javascript
复制
mygeom.transform(ol.proj.transform(nztmproj, 'EPSG:4326'));

但是,首先转换evt.coordinates不是更容易吗?像这样:

代码语言:javascript
复制
var coord = ol.proj.transform(evt.coordinate, nztmproj, 'EPSG:4326'); 

我很确定这不会输出任何有效的EPSG:4326坐标(参见APIdoc),但它是关于方案的转换函数(坐标,从投影,到投影)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31417448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档