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 );
}
}
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);