Foros del Web » Programando para Internet » Javascript »

problemas con getProperties()

Estas en el tema de problemas con getProperties() en el foro de Javascript en Foros del Web. Hola a todos, Estoy trabajando con openlayers3 y tengo varias features, tales como manzanas, pozos, imbornales, etc en mi mapa. Estas features contienen elementos diferentes ...
  #1 (permalink)  
Antiguo 11/12/2014, 17:24
 
Fecha de Ingreso: septiembre-2014
Mensajes: 40
Antigüedad: 9 años, 7 meses
Puntos: 0
Pregunta problemas con getProperties()

Hola a todos,

Estoy trabajando con openlayers3 y tengo varias features, tales como manzanas, pozos, imbornales, etc en mi mapa. Estas features contienen elementos diferentes con valores que han sido introducidos por mi, como: nombre, coordenadas, etc. Mi objetivo era obtener esta información y lo he conseguido, pero solo usando console.log. Lo que quiero es que esta información se visualice en un innerHTML.

He intentado poner esto en mi código:

if (feature) {
content.innerHTML = feature.getProperties();
return container.style.display = 'block';
}

getProperties obtiene un objeto de todos los nombres y valores de las propiedades y devuelve un objeto. Más información aquí:
[URL="http://openlayers.org/en/master/apidoc/ol.Feature.html?unstable=true#getProperties"]http://openlayers.org/en/master/apidoc/ol.Feature.html?unstable=true#getProperties[/URL]

Con este código, cuando hago click sobre las features, obtengo: [object Object].

Pero pude comprobar usando console.log que cuando pincho sobre las features obtengo toda la información.

if (feature) {
console.log(feature.getProperties());
return container.style.display = 'block';
}

Otra forma de obtener la información es cambiando el código, tal que:

if (feature) {
content.innerHTML = feature.getId() + ': ' + feature.get('name');
return container.style.display = 'block';
}

Pero no es la forma correcta de hacerlo porque cada feature tiene elementos diferentes.

Por lo tanto mi pregunta es: ¿Cómo podría yo mostrar la informacion de las features?, es decir, la misma información que me aparece cuando uso console pero usando esta vez innerHTML o algo similar.

Muchas gracias!
  #2 (permalink)  
Antiguo 11/12/2014, 18:44
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: problemas con getProperties()

Habría que ver qué tipo de objeto es. Podrías intentar usar JSON.stringify
  #3 (permalink)  
Antiguo 11/12/2014, 22:17
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: problemas con getProperties()

Me parece que vas a tener que iterar sobre el objeto e ir imprimiendo los valores de sus propiedades. Puedes hacer una prueba de esta manera:

Código Javascript:
Ver original
  1. var objeto = feature.getProperties(),
  2.     propiedad;
  3. for (propiedad in objeto){
  4.     content.innerHTML += propiedad + ": " + objeto[propiedad] + "<br />";
  5. }

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 12/12/2014, 05:28
 
Fecha de Ingreso: septiembre-2014
Mensajes: 40
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: problemas con getProperties()

Por si sirve de ayuda, el resultado que obtengo usando console.log es este:

Object { geometry: Object, codimbornal: "B12", coorx: 725694.19931, coory: 4372192.91419, tipo: "RECTANGULAR PEQUENO", origen: "SIRA-II", observaciones: "Imbornal Pl. Ayuntamiento" }
  #5 (permalink)  
Antiguo 12/12/2014, 05:46
 
Fecha de Ingreso: septiembre-2014
Mensajes: 40
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: problemas con getProperties()

Funciona! Aunque no sé aún por qué!

he puesto esto en mi código:

if (feature) {
var objeto = feature.getProperties(),
propiedades;
for (propiedades in objeto){
content.innerHTML += propiedades + ": " + objeto[propiedades] + "<br />";
}
return container.style.display = 'block';
}

Y ahora me salen todos los elementos con sus valores. ¿A que se debe?

Y también hay un problema y es que se duplica la información. Es decir, si pincho en una primera feature me sale todo bien, pero si pincho a la siguiente me sale la información anterior y la nueva y así sucesivamente.
Qué podría hacer para solucionarlo?

Muchísimas gracias!

Última edición por elcaiaimar; 12/12/2014 a las 06:02

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:50.