Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2012, 10:59
Biribu
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Mostrar y actualizar marcadores en openlayer

Buenas.

Estoy intentando mostrar un marcador en openstreetmap a traves de openlayer. Y solo soy capaz de hacerlo si dejo el codigo de añadir el marcador fuera de funciones, si lo pongo como lo tengo ahora no funciona:
Código:
<!DOCTYPE HTML>
<html>
  <head>
    <title>OpenLayers Demo</title>
    <style type="text/css">
      body, #basicMap {
          width: 500px;
	height: 300px;
	margin: 10px;
	float: left;
      }
	 html {
                font-size: 0px;
                bottom: 0px;
                right: 0px;
            }

    </style>
    <script src="http://www.openlayers.org/api/OpenLayers.js"></script>
    <script>
	var vectorLayer;
	var feature;
	
	
	function ejecutar(){
		init();
		loadMarkers();
	}
	function init() {
        map = new OpenLayers.Map("basicMap");
        map.addLayer(new OpenLayers.Layer.OSM());
        map.setCenter(new OpenLayers.LonLat(-3.862788677215576, 43.4669443349282) // Center of the map
          .transform(
            new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
            new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection
          ), 12 // Zoom level
        );
		//loadMarkers();
      }
	  
	  function loadMarkers(){
	  	     vectorLayer = new OpenLayers.Layer.Vector("Overlay");
    
    // Define markers as "features" of the vector layer:
   			  feature = new OpenLayers.Feature.Vector(
             new OpenLayers.Geometry.Point( -3.862788677215576, 43.4669443349282 ).transform(epsg4326, projectTo),
            {description:'This is the value of<br>the description attribute'} ,
            {externalGraphic: 'redMarker.png', graphicHeight: 25, graphicWidth: 21, graphicXOffset:-12, 	graphicYOffset:-25  }
        );    
		    vectorLayer.addFeatures(feature);
    
		    map.addLayer(vectorLayer);
	  
    
    
	  }
    </script>
  </head>
 /* <body onload="ejecutar();">
    <div id="basicMap" ></div>
  </body>
</html>
Por otro lado, me interesaba que estuviese en una funcion lo de cargar el marcador porque mi idea era cargar varios de ellos desde una base de datos y que se fuesen actualizando cada X segundos para mostrar donde se encuentran o cambiar el color del marcador dependiendo de ciertas propiedades de los campos de la base de datos (peso, altura...)

No he encontrado ningun ejemplo de como actualizar los marcadores, de dibujarlos si pero todos fuera de funciones y eso hace que no pueda actualizarlos despues.

¿Alguna idea?