qq_54187184 2023-06-16 13:45 采纳率: 13.6%
浏览 10

openlayers3如何做到在地图中选择点位,并拿到其经纬度

地图底版用的是天地图,现在需要使用openlayers3做到在地图当中点击选择点位,并拿到其坐标。

  • 写回答

3条回答 默认 最新

  • 黄以礼 2023-06-16 13:57
    关注

    您可以通过以下步骤在OpenLayers 3中实现选择点位并获取其经纬度:

    首先,创建一个OpenLayers地图对象,并添加一个点图层。

    javascript

    var map = new ol.Map({  
      target: 'map',  
      layers: [  
        new ol.layer.Tile({  
          source: new ol.source.OSM()  
        }),  
        new ol.layer.Vector({  
          source: new ol.source.Vector({  
            url: 'points.geojson',  
            format: new ol.format.GeoJSON()  
          })  
        })  
      ],  
      view: new ol.View({  
        center: ol.proj.fromLonLat([0, 0]),  
        zoom: 2  
      })  
    });
    
    

    接下来,为地图对象添加点击事件监听器,以便在点击地图时获取所选点的经纬度。

    javascript

    map.on('click', function(evt) {  
      var feature = map.forEachFeatureAtPixel(evt.pixel, function(feature, layer) {  
        return feature;  
      });  
      if (feature) {  
        var geometry = feature.getGeometry();  
        var coord = geometry.getCoordinates();  
        var lat = ol.proj.toLonLat(coord[1], coord[0]).lat;  
        var lon = ol.proj.toLonLat(coord[1], coord[0]).lon;  
        console.log('Latitude: ' + lat + ', Longitude: ' + lon);  
      }  
    });
    
    

    在这个示例中,当用户在地图上点击时,forEachFeatureAtPixel方法会在当前点击位置查找可见的点图层中的特征。如果找到了特征,就使用getGeometry方法获取其几何对象,然后使用getCoordinates方法获取其坐标。最后,使用ol.proj.toLonLat方法将坐标转换为经纬度,并将其打印到控制台中。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月16日

悬赏问题

  • ¥15 Hadoop的部署与安装的一些疑问
  • ¥15 短剧的sdk在哪里接入
  • ¥30 智能割草机自动化割草
  • ¥15 求:可不可以提供一些 在国内可以用,低代码不要太难 在电脑上可以下载的 制作app的软件
  • ¥60 找人回答kibana8.14.3二次集成开发,自定义插件ui导航栏如何设置
  • ¥15 fluke高精度万用表8845A型号测交流电压一直跳动,且去掉输入后显示不归零
  • ¥15 不同模型怎么用同一个shader
  • ¥15 安卓启动没有ais proxy与v4l2的log打印
  • ¥15 go怎么读取mdb文件里面的数据
  • ¥60 Matlab联合CRUISE仿真编译dll文件报错