Search code examples
javascriptjqueryopenstreetmap

how can i add marker on openstreetmap with the help of database value


I want to dispay marker on openstreetmap and longitude and latitude value comes from database. but marker is showing on wrong location. i passed location(Pune,india)value but marker is showing on another location(South africa).

 window.onload = function GetOSMMap()
 {
  map                = new OpenLayers.Map("dvMap");
  var mapnik         = new OpenLayers.Layer.OSM();
  var fromProjection = new OpenLayers.Projection("EPSG:4326");   
  var toProjection   = new OpenLayers.Projection("EPSG:900913"); 
  var position       = new OpenLayers.LonLat(18.5916189,73.8618545).transform(
fromProjection, toProjection);                                                   
  var zoom           = 10;

  map.addLayer(mapnik);
  map.setCenter(position, zoom );  

  var marker = new OpenLayers.Layer.Markers( "Markers" );                                                    
  for (i = 0; i < markers.length; i++) {
   var data = markers\[i\]   
   var lonLat = new OpenLayers.LonLat( data.lat, data.lng );  

   map.addLayer(marker);
   marker.addMarker(new OpenLayers.Marker(lonLat));
   map.setCenter(lonLat, zoom ); 
 }
}

Solution

  • You are passing the latitude value as longitude and the longitude as latitude. Change the order of the parameters and you should get the correct result.

      var position       = new OpenLayers.LonLat(73.8618545, 18.5916189).transform(
    fromProjection, toProjection);