openlayer4中获取地图坐标的方法

本文介绍如何在OpenLayer中正确处理地图点击事件,并解决使用默认事件监听导致的问题。通过示例展示了如何自定义事件监听器来获取点击坐标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html>
<head>
    <title>WFS</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" href="ol.css" type="text/css">
    <script src="ol-debug.js"></script>
    <script src="jquery.min.js"></script>
</head>
<body>
<div id="map" style="width: 100%"></div>
<script type="text/javascript">
    var map = new ol.Map({
        layers: [
            new ol.layer.Tile({
                source: new ol.source.OSM()
            })
        ],
        target: 'map',
        view: new ol.View({
            center: ol.proj.transform(
                [104, 30], 'EPSG:4326', 'EPSG:3857'),
            zoom: 10
        })
    });

    // 监听singleclick事件
    /*
   map.on('click', function(event){
        //alert('触发点击事件' + event.clientX);  event.clienX 为undefined

        var t = ol.proj.transform(map.getEventCoordinate(event), 'EPSG:3857', 'EPSG:4326')

        alert(t);
    })
*/
  $("#map").click(function (e) {
     // alert('X ; '+ e.clientX  + 'Y: '+e.clientY);
      var t = ol.proj.transform(map.getEventCoordinate(e), 'EPSG:3857', 'EPSG:4326');
      alert(t);
  })

</script>
</body>
</html>

注意:使用openlayer自带的注册事件函数ol.map.on(‘click’,function(e))
会使e.clientX为undefined,而源代码中使用了e.clientX,故返回NaN。
故自己注册事件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值