как я могу добавить маркер на openstreetmap с помощью значения базы данных - PullRequest
0 голосов
/ 26 июня 2018

Я хочу отобразить маркер на openstreetmap, а значение долготы и широты исходит из базы данных. но маркер показывает в неправильном месте. Я передал значение местоположения (Пуна, Индия), но маркер отображается в другом месте (Южная Африка).

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

1 Ответ

0 голосов
/ 26 июня 2018

Вы передаете значение широты как долготу и долготу как широту.Измените порядок параметров, и вы должны получить правильный результат.

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