OL3: как оценить точечный объект в конкретном векторном источнике?

На моем веб-сайте, построенном с ol3, у меня есть два или более векторных слоя с различными источниками на моей карте, я хочу щелкнуть объекты в определенном источнике и показать некоторые всплывающие окна. Мой путь-это добавление события одного клика на моей карте и использованиеsource.getFeaturesAtCoordinate(evt.coordinate), но всегда получать пустые результаты [].Что я могу сделать в этой ситуации?

1 ответ

  1. Для точек, вы должны быть чрезвычайно повезло, чтобы попасть в точную координату. Вы должны учитывать размер отрисованных точек, и для этого вам лучше использовать ol.Map#forEachFeatureAtPixel(). Он работает на слое, а не на источнике:

    map.forEachFeatureAtPixel(evt.pixel, function(feature, layer) {
      // get the source
      source = layer.getSource();
      // do something with the feature
    });