【问题标题】:get coordinates event map openlayers 4.6.5 ~ 5获取坐标事件地图 openlayers 4.6.5 ~ 5
【发布时间】:2018-12-10 14:32:47
【问题描述】:

我尝试获取在 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 值。

我尝试搜索文档,但它要么太旧,要么直接在侦听器中编写函数,我不想这样做,因为我希望能够将其删除

任何人有线索在 ol 4.6.5 ~ 5 中获取这些坐标?

谢谢

【问题讨论】:

    标签: javascript openlayers


    【解决方案1】:

    此代码将起作用。请注意,您将获得的坐标位于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'));
    });
    

    【讨论】:

    • 可以在地图中定义投影而不添加图层,所以强制添加图层获取坐标会很奇怪
    • @Clement 正确。同意!
    【解决方案2】:

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

    【讨论】:

    • 当我将视图下的投影指定为 EPSG:2326 并执行 event.coordinate 时,它​​会给我 EPSG:3857 还是 EPSG2326?
    • 当您使用该函数时,它会在 EPSG:3857 中返回,但您可以使用 ol.proj.transform() 进行转换,请参阅 capnam 的答案。您也可以查看openlayers.org/en/latest/apidoc/…,但这并没有真正表明任何可悲的情况:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多