No puedo entender por qué mi vector es vacia después de esta petición ajax :
function loadKMLTMINT(terminalcode) {
MapPanel.el.mask();
Ext.Ajax.request({
url: 'php/GetKMLTM.php',
method: 'POST',
params: {
terminalcode: terminalcode
},
success: function (r) {
if (r.responseText.length > 0) {
var data_tmp = JSON.parse(JSON.stringify(r.responseText));
vector_term.parseFeatures(data_tmp, new ol.parser.GeoJSON(), ol.proj.get("EPSG:3857"));
var first = true, precExtent = [];
for (var vec in vector_term.featureCache_.idLookup_) {
if (vector_term.featureCache_.idLookup_[vec].values_.Intermodal == 'Y' && vector_term.featureCache_.idLookup_[vec].values_.NAME.substring(0, 5) === terminalcode.substring(3, 8)){
if (first) {
first = false;
precExtent = vector_term.featureCache_.idLookup_[vec].values_.geometry.rings_[0].bounds_;
} else {
ol.extent.extend(precExtent, vector_term.featureCache_.idLookup_[vec].values_.geometry.rings_[0].bounds_);
}
}
}
olmap.getView().fitExtent(precExtent, olmap.getSize());
}
MapPanel.el.unmask();
}
});
}
Voy a llamar a esta función del tiempo, con el fin de añadir algunos valores para la capa de vector_term. Con la depuración puedo ver que mi vector_term es completa cuando llamo a la función, pero cuando llega a la success: function(r)
se convierte en vacío ! Cómo saber si estoy haciendo algo mal? Debo usar addFeatures
en lugar de parseFeatures
?
Gracias
EDIT : vector_term definición
var vector_term = new ol.layer.Vector({
source: new ol.source.Vector({
parser: new ol.parser.GeoJSON()
}),
style: new ol.style.Style({
rules: [
new ol.style.Rule({
filter : 'geometryType("polygon")',
symbolizers: [
new ol.style.Fill({
color: ol.expr.parse('color'),
opacity: 0.4
}),
new ol.style.Stroke({
color: ol.expr.parse('color'),
opacity: 0.8
}),
new ol.style.Text({
color: '#0A3ABF', //'#165EF0',
text: ol.expr.parse('NAME'),
fontFamily: 'Arial',
fontSize: 14,
zIndex: 7
})
]
})
]
})
});