增加forEachFeatureAtPixel OpenLayers 3

时间:2017-12-07 15:04:49

标签: openlayers-3 markers

我在地图中绘制了一些标记。那些标记,有一个用户图标(这是png中的图像)我想,当我使用forEachFeatureAtPixel时,我可以点击这个用户图标的所有区域。

所以,我的问题是,如何将区域增加到" forEachFeatureAtPixel"?

这是我的职责:

// display popup on click
map.on('click', function(evt) {
 var feature = map.forEachFeatureAtPixel(evt.pixel,
  function(feature, layer) {
    return feature;
  });
 if (feature) {

  //..................
 } 
 });

1 个答案:

答案 0 :(得分:1)

不确定我是否正确理解您的问题,但是......

您不应该在代码中增加任何内容..

试试这个:

class Human
{
    protected:
        int age;
        std::string sex;    
    public: 
        virtual void speak() = 0;
};
class Child:public Human
{
    public:
        void speak(){std::cout << "I am Child\n";}
};
class Man:public Human
{
    public: 
        void speak(){std::cout << "I am Man\n";}
};
class Woman:public Human
{
    public: 
        void speak(){std::cout << "I am Woman\n";}
};
(don't know, std::shared_ptr<Human> maybe?) operator*(std::shared_ptr<Child> &b, int x)
{
    b->setAge(b->getAge()+x);
    if(b->getAge()>18 && b->getSex()=="Man")
    {
        return (i want b to become std::shared_ptr<Man>)
    }
    if(b->getAge()>18 && b->getSex()=="Woman")
    {
        return (here I want b to become std::shared_ptr<Woman>);
    }
    return;
}
int main(){
    auto x = std::make_shared<Child>;
    x*19;
}