Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/02/2012, 18:18
silvionparada
 
Fecha de Ingreso: febrero-2012
Mensajes: 1
Antigüedad: 12 años, 3 meses
Puntos: 0
OpenLayer Java y Php

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 &copy; <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.