Estoy utilizando Openlayer (script para mostar mapas personalizados) y asi mostrar una mapa en mi web. Tengo el siguiente código (en una página llamada calles.php) y funciona bien (lo saque de los ejemplos de openlayer). Yo solo le agregué pasar por URL la latitud y longuitud para que el mapa se posicione donde yo quiero.
<?php
$X = $_GET['lat'];
$Y = $_GET['lon'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>OpenLayers - Beispiel/Example 2</title>
<script type="text/javascript" src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script type="text/javascript">
// <![CDATA[
function init(){
var X = "<?php echo $X; ?>";
var Y = "<?php echo $Y; ?>";
//document.writeln("Esto es una variable de php mostrada en javascript ", X);
var proj4326 = new OpenLayers.Projection("EPSG:4326");
var projmerc = new OpenLayers.Projection("EPSG:900913");
var lonlat = new OpenLayers.LonLat(X, Y);
var zoom = 18;
var map = new OpenLayers.Map("map", {
controls: [
new OpenLayers.Control.KeyboardDefaults(),
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.LayerSwitcher(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.MousePosition()
],
maxExtent:
new OpenLayers.Bounds(-20037508.34,-20037508.34,
20037508.34, 20037508.34),
numZoomLevels: 20,
maxResolution: 156543,
units: 'm',
projection: projmerc,
displayProjection: proj4326
} );
var mapnik_layer = new OpenLayers.Layer.XYZ('OSM Mapnik', 'http://tile.openstreetmap.org/${z}/${x}/${y}.png'); /*, {
sphericalMercator: true
});*/
var tah_layer = new OpenLayers.Layer.XYZ('OSM Tiles@Home', 'http://tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png'); /*, {
sphericalMercator: true
});*/
map.addLayers([mapnik_layer, tah_layer]);
lonlat.transform(proj4326, projmerc);
map.setCenter(lonlat, zoom);
}
// ]]>
</script>
</head>
<body onload="init()">
<h1>OpenLayers - Beispiel/Example 2</h1>
<div id="map" style="width: 100%; height: 700px;"></div>
<p>Copyright © <a href="http://www.openstreetmap.org/">OpenStreetMap Contributors</a>
| License: <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons BY-SA 2.0</a>
</p>
</body>
</html>
************************************************** ***************
Ahora: Quiero que abajo del mapa , en la misma página esten unos link con nombres de calles o lugares, que llamen a la misma página con los parametros Lat y Lon para reposicionar el mapa pero sin inicializarlo de nuevo, es decir solo usra la función que se ejecutó cuando finaliza el script:
map.setCenter(lonlat, zoom);
Se puede hacer? o si o si se tiene que invocar a INIT() cada vez que la página se carga.
Gracias de antemano.