2017-10-11 219 views
2

在地图上,我绘制了一个多边形,并且当我单击多边形的仅限边界时,我想弹出一些信息。 你有任何解决方案来强制选择边界吗?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); 
     } 
    }); 

但是这将选择多边形(面积等)和弹出信息在多边形的一切。

感谢您的帮助。

回答

0

不是最优的,但如果您将边界绘制为一条线(除多边形之外),并且只有在要素是一条线时才接受?还要在指向多边形的线的属性中添加一个ID。 必须有一些更好的方法......但如果你只有几个小的多边形,这没关系。