Страница 1 из 1

OpenLayers: создание метода

Добавлено: 31 июл 2011, 20:07
Denis Rykov
Можно ли в клиентском приложении создать новый метод какого-нибудь класса? Как переопределить имеющйся - известно, а вот можно ли создать. Попробовал по аналогии, получаю ошибку "invalid label". Пока проблему закрыл переносом кода метода в исходники OL - так работает.

Re: OpenLayers: создание метода

Добавлено: 31 июл 2011, 20:39
Mavka
Создание новых методов класса: JavaScript: доп. функции для работы со строками
И может быть это заинтересует: GetFeature - индикатор загрузки

Re: OpenLayers: создание метода

Добавлено: 31 июл 2011, 20:52
Denis Rykov
Я так и делал - через прототип, не работает:

Код: Выделить всё

OpenLayers.Layer.Vector.prototype.getFeaturesByGeometryType = function(geomType) {
var i,
feature,
len = this.features.length,
foundFeatures = [];
for(i = 0; i < len; i++) {
feature = this.features;
if(feature && feature.geometry) {
if (feature.geometry.CLASS_NAME === geomType) {
foundFeatures.push(feature);
}
}
}
return foundFeatures;
}

Re: OpenLayers: создание метода

Добавлено: 31 июл 2011, 23:33
Mavka
Взял приведенный код, не изменил ни строчки - все работает.

Re: OpenLayers: создание метода

Добавлено: 01 авг 2011, 02:14
Denis Rykov
Ничего не понимаю - действительно работает, теперь обратная задача - как получить ошибку "invalid label" :)