Openlayers 3 forEachLayerAtPixel 只获取层

Posted

技术标签:

【中文标题】Openlayers 3 forEachLayerAtPixel 只获取层【英文标题】:Openlayers 3 forEachLayerAtPixel get only layer 【发布时间】:2017-02-23 20:09:41 【问题描述】:

我正在工作 Openlayers 3。我在地图上添加了三层WMS,顺序如下:公社、区、省。我在缩放时使用 "forEachLayerAtPixel" 来获取当前图层的信息。 示例: 当缩放到图层District 得到信息图层District,或者缩放到图层Commune 得到信息图层Commune。但是它只获取图层省份的信息,当缩放到图层District时返回“undefined”。我使用事件 "pointermove" 在地图上悬停:

map.on("pointermove", function (evt) 
   if (evt.dragging) return; 
   const hit = map.forEachLayerAtPixel(evt.pixel, (layer) => 
                  if (layer instanceof ol.layer.Tile)
                     return layer;
                  return null;
               );
   console.log(hit);

【问题讨论】:

嗨,你有什么问题? 不要返回层,否则它将停止搜索。将日志放在回调中。 http://***.com/help/how-to-ask 【参考方案1】:

大概的问题是:如何用forEachLayerAtPixel的方法来追踪一个特定的层? 因为显然总是返回未定义的又名变量未设置。

【讨论】:

以上是关于Openlayers 3 forEachLayerAtPixel 只获取层的主要内容,如果未能解决你的问题,请参考以下文章

OpenLayers 3 入门教程

在 OpenLayers 3 中使用 Geowebcache 切片

Openlayers 3 - wfs-t:更改几何字段的名称

Openlayers 3 forEachLayerAtPixel 只获取层

OpenLayers 3 基础知识

如何从业力测试触发 openLayers 3 'singleClick'