[Talk-co] Openlayers - Problemas para colocar un punto basado en Latitud y Longitud

Diego Uribe Gamez diego.uribe.gamez en gmail.com
Mar Abr 17 16:31:10 BST 2012


Lo de modificar el centrar el mapa dinamicamente es un tema que lo tocare
mas adelante en el desarrollo, Gracias por el dato hyances, un saludo.

Ya identifique uno de los problemas y esta en la capa de OSM.

cuando cargo la capa WMS de Openlayers el marcador efectivamente se coloca
en la latitud y la longitud adecuadas, pero cuando la intento cambiar por
"capa = new OpenLayers.Layer.OSM();" para usar la capa de OpenStreetMap el
marcador se centra en 0,0 y la verdad no se porque pasa esto? me puedes
explicar que pasa!

--------Codigo funcionando sin la capa de OSM -----------------

var mapa, capa;
var size, icon;

function init(){
mapa = new OpenLayers.Map('mapa');
 capa = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
 mapa.addLayer(capa);
var markers = new OpenLayers.Layer.Markers( "Markers" );
 mapa.addLayer(markers);

size = new OpenLayers.Size(21, 25);
 calculateOffset = function(size) {return new OpenLayers.Pixel(-(size.w/2),
-size.h); };
icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png',size,
null, calculateOffset);
 markers.addMarker(new OpenLayers.Marker(new
OpenLayers.LonLat(-74.1120610667, 4.66881451667), icon));

mapa.addControl(new OpenLayers.Control.LayerSwitcher());
 mapa.zoomToMaxExtent();
}

El 16 de abril de 2012 23:41, Germán Márquez Mejía <manchito en gmail.com>escribió:

> Veo que al final, sin importar la posición del marcador, siempre
> recentras a (74,4). ¿Qué tal si lo pones así?
>
> [...]
> var size = new OpenLayers.Size(21,25);
> var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
> var icon = new
> OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png
> ',size,offset);
>
> var marcador = new OpenLayers.Marker(new
> OpenLayers.LonLat(-74.1120610667, 4.66881451667),icon);
> markers.addMarker(marcador);
>
>
> mapa.addLayers([osm,gmap,ghyb,veroad,vehyb,yahoo,yahoohyb]);
> mapa.addControl(new OpenLayers.Control.LayerSwitcher());
> mapa.setCenter(marcador.lonlat, 3);
> [...]
>
> Am Montag, den 16.04.2012, 18:57 -0500 schrieb Diego Uribe Gamez:
> > Hola a todos, le cuento que tengo un problema intentando colocar un
> > marcador basado en la latitud y la longitud de un punto en especial y
> > es que no importando si le paso la latitud y la longitud que tengo el
> > simplemente se queda en el centro del mapa? y no se mueve a
> > la posición que es en el mapa usando OpenLayers? aquí les paso
> > el código para el mapa que estoy colocar en mi pagina para ver si me
> > me pueden ayudar:
> >
> >
> > Gracias.
> >
> >
> > ----- Código exclusivo para el marcador
> > --------------------------------------------------------------
> >
> >
> > var markers = new OpenLayers.Layer.Markers( "Markers" );
> > mapa.addLayer(markers);
> >
> >
> > var size = new OpenLayers.Size(21,25);
> > var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
> > var icon = new
> > OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png
> ',size,offset);
> >
> >
> > markers.addMarker(new OpenLayers.Marker(new
> > OpenLayers.LonLat(-74.1120610667, 4.66881451667),icon));
> >
> >
> > ----- Código completo del mapa
> > -------------------------------------------------------------------------
> >
> >
> > <!--OpeLayers-->
> > <script
> > src='http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1
> '></script>
> > <script
> > src='
> http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ
> '></script>
> > <script
> > src="http://api.maps.yahoo.com/ajaxymap?v=3.0&appid=euzuro-openlayers
> "></script>
> >
> >
> > <script src='openlayers/OpenLayers.js'></script>
> > <script type="text/javascript">
> >
> >
> > // make map available for easy debugging
> > var mapa;
> >
> >
> > // increase reload attempts
> > OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
> >
> >
> > function init(){
> >
> >
> > var mapa = new OpenLayers.Map('mapa')
> >
> >
> > // OSM layer
> > var osm = new OpenLayers.Layer.OSM();
> >
> >
> > // create Google Mercator layers
> > var gmap = new OpenLayers.Layer.Google(
> > "Google Streets",
> > {sphericalMercator: true}
> > );
> > var ghyb = new OpenLayers.Layer.Google(
> > "Google Hybrid",
> > {type: G_HYBRID_MAP, sphericalMercator: true}
> > );
> >
> >
> > // create Virtual Earth layers
> > var veroad = new OpenLayers.Layer.VirtualEarth(
> > "Virtual Earth Roads",
> > {'type': VEMapStyle.Road, sphericalMercator: true}
> > );
> > var vehyb = new OpenLayers.Layer.VirtualEarth(
> > "Virtual Earth Hybrid",
> > {'type': VEMapStyle.Hybrid, sphericalMercator: true}
> > );
> >
> >
> > // create Yahoo layer
> > var yahoo = new OpenLayers.Layer.Yahoo(
> > "Yahoo Street",
> > {sphericalMercator: true}
> > );
> > var yahoohyb = new OpenLayers.Layer.Yahoo(
> > "Yahoo Hybrid",
> > {'type': YAHOO_MAP_HYB, sphericalMercator: true}
> > );
> >
> >
> > var markers = new OpenLayers.Layer.Markers( "Markers" );
> > mapa.addLayer(markers);
> >
> >
> > var size = new OpenLayers.Size(21,25);
> > var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
> > var icon = new
> > OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png
> ',size,offset);
> >
> >
> > markers.addMarker(new OpenLayers.Marker(new
> > OpenLayers.LonLat(-74.1120610667, 4.66881451667),icon));
> >
> >
> > mapa.addLayers([osm,gmap,ghyb,veroad,vehyb,yahoo,yahoohyb]);
> > mapa.addControl(new OpenLayers.Control.LayerSwitcher());
> > mapa.setCenter(new OpenLayers.LonLat(-74, 4), 3);
> >
> >
> > }
> >
> >
> > </script>
> >
> >
> > --
> >  Diego Alonso Uribe Gamez
> > ______________________________________________________________________
> >
> > Desarrollador web
> >
> > Twitter: @DiegoUG
> >
> > Google+: http://gplus.to/diegoug
> >
> >
> > ______________________________________________________________________
> >
> >
> >
> >
> >
> > _______________________________________________
> > Talk-co mailing list
> > Talk-co en openstreetmap.org
> > http://lists.openstreetmap.org/listinfo/talk-co
>
>
>
> _______________________________________________
> Talk-co mailing list
> Talk-co en openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-co
>



-- 
 *Diego Alonso Uribe Gamez*
------------------------------

*Desarrollador web*

Twitter: @DiegoUG <http://www.twitter.com/DiegoUG>

Google+: http://gplus.to/diegoug
------------------------------
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.openstreetmap.org/pipermail/talk-co/attachments/20120417/7306d878/attachment.html>


Más información sobre la lista de distribución Talk-co