我想在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 );
}
}
您将纬度值作为经度传递,将经度作为纬度传递。更改参数的顺序,您应该得到正确的结果。
var position = new OpenLayers.LonLat(73.8618545, 18.5916189).transform(
fromProjection, toProjection);