繁体   English   中英

获取坐标事件地图 openlayers 4.6.5 ~ 5

[英]get coordinates event map openlayers 4.6.5 ~ 5

我尝试获取在 openlayers 地图上单击的坐标。 我的代码如下:

const localmap = new ol.Map({
    layers: [
      new ol.layer.Tile({
        source: new ol.source.OSM()
      })
    ],
    target: 'map',
    view: new ol.View({
      center: [0, 0],
      zoom: 2
    })
  });

  function getPosition(event){
    console.log(localmap.getEventCoordinate(event));
}

  localmap.on('click', getPosition(event));

但我以这种方式唯一得到的是一个错误:

Uncaught TypeError: Cannot read property 'changedTouches' of undefined

我尝试将侦听器添加为

localmap.on('click', getPosition);

它在每次点击时显示一个数组,但它填充了 Nan 值。

我尝试搜索 doc 和所有但它太旧或直接在侦听器中编写函数,我不想要因为我希望能够删除它

有人知道如何在 ol 4.6.5 ~ 5 中获得这些坐标吗?

谢谢

此代码将起作用。 请注意,您将获得的坐标在EPSG:3857投影中使用ol.proj.transform()将它们转换为EPSG:4326投影。 要了解有关预测的更多信息,请访问https://lyzidiamond.com/posts/4326-vs-3857 如果您要经常使用 openlayers,则必须阅读本文。

const localmap = new ol.Map({
        layers: [
            new ol.layer.Tile({
                source: new ol.source.OSM()
            })
        ],
        target: 'map',
        view: new ol.View({
            center: [0, 0],
            zoom: 2
        })
});

localmap.on('singleclick', function (evt) {
    console.log(evt.coordinate);

    // convert coordinate to EPSG-4326
    console.log(ol.proj.transform(evt.coordinate, 'EPSG:3857', 'EPSG:4326'));
});

好吧,原来它只适用于event.coordinate ,在层中定义的 SRC 中显示坐标

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM