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?


