openlayers 3 - 单击多边形边界

时间:2017-10-11 08:28:39

标签: javascript openlayers-3

在地图上,我画了一个多边形,当我点击多边形的边界时,我想弹出一些信息。 您是否有任何解决方案可以强制选择边界?

            var featureContext = new ol.Feature({
                geometry: new ol.geom.Polygon([polyCoords])
            })

            featureContext.setStyle(
                new ol.style.Style({
                    stroke: new ol.style.Stroke({
                        color: context[cc].displayColor,
                        width: 3
                    })
                })
            );

            var layerContext = new ol.layer.Vector({
                source: new ol.source.Vector({
                    features: [featureContext]
                })
            });
            map.addLayer(layerContext);

我现在所做的:

   map.on('singleclick', function(evt) {
        if (evt.dragging) {
          return;
        }
        var feature = map.forEachFeatureAtPixel(map.getEventPixel(evt.originalEvent), function(feature) {
            return feature;
        });
        if (feature) {
           popUp(feature);
        }
    });

但是这会选择多边形上的所有内容(区域等)和多边形中的弹出信息。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

不是最佳但是如果您将边界绘制为一条线(除了多边形)并且只接受特征是一条线?还要在指向多边形的线属性中添加一个id。 必须有一些更好的方法......但如果你只有一些小的多边形,这是可以的。