2015-12-10 2 views
2

У меня есть список функций и векторный слой, и мне нужно знать, зависит ли каждая функция от границ карты или нет.Openlayer 3 - проверьте, находится ли функция в пределах степени

Я использую openlayers v3.9.0, а в соответствующей документации есть функция containsExtent() (link), которая имеет значение и возвращает логическое значение. Кажется, именно то, что я ищу. Но возникает ошибка, говорящая, что containsExtent не является функцией.

Uncaught TypeError: extent.containsExtent is not a function

фрагмент кода:

// someVectorSource is of type ol.source.Vector 
// allMyFeatures is an array of features of type ol.Feature 

var extent = someVectorSource.getExtent(); 
_.each(allMyFeatures, function(feature) { 
    if (extent.containsExtent(feature.getGeometry().getExtent())) { 
    // do something 
    } 
}); 

Что здесь проблема?

Если это лучший способ, получить только те функции, которые находятся в пределах одного и того же вызова без повторения через список, будет еще лучше.

ответ

6

Правильный синтаксис:

ol.extent.containsExtent(extent, feature.getGeometry().getExtent()) 

Если присмотреться на doc page, вы увидите, что этот метод является статическим, а не часть ol.Extent объекта. FYI, нет фактического объекта ol.Extent в ol3. Это всего лишь массив из 4 чисел. Я думаю, ol.Extent - это просто ссылка для компилятора.

HTH

Смежные вопросы