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:
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...)<!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>
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?