OpenLayers-LonLat变换

OpenLayers-LonLat变换,openlayers,openstreetmap,wikidata,Openlayers,Openstreetmap,Wikidata,我试图将OSM OpenLayers示例与我从中获得的结果结合起来,但似乎我做了错误的转换。 long和lat的正确转换是什么 <html><body> <div id="mapdiv"></div> <script src="http://www.openlayers.org/api/OpenLayers.js"></script> <script> map = new OpenLayers

我试图将OSM OpenLayers示例与我从中获得的结果结合起来,但似乎我做了错误的转换。 long和lat的正确转换是什么

<html><body>
  <div id="mapdiv"></div>
  <script src="http://www.openlayers.org/api/OpenLayers.js"></script>
  <script>
    map = new OpenLayers.Map("mapdiv");
    map.addLayer(new OpenLayers.Layer.OSM());

    var lonLat = new OpenLayers.LonLat( 40.228055555556, 27.242222222222 )
          .transform(
            new OpenLayers.Projection("EPSG:900913"), // transform from WGS 1984
            map.getProjectionObject() // to Spherical Mercator Projection
          );

    var zoom=16;

    var markers = new OpenLayers.Layer.Markers( "Markers" );
    map.addLayer(markers);

    markers.addMarker(new OpenLayers.Marker(lonLat));

    map.setCenter (lonLat, zoom);
  </script>
</body></html>

map=新的OpenLayers.map(“mapdiv”);
addLayer(新的OpenLayers.Layer.OSM());
var lonLat=新OpenLayers.lonLat(40.2280555556,27.242222)
.变换(
新OpenLayers.Projection(“EPSG:900913”),//从WGS 1984转换而来
map.getProjectionObject()//到球形墨卡托投影
);
var=16;
var markers=新的OpenLayers.Layer.markers(“markers”);
添加图层(标记);
markers.addMarker(新OpenLayers.Marker(lonLat));
map.setCenter(lonLat,zoom);

转换错误:您的lonLat变量位于EPSG:4326中,因此您应该从EPSG:4326转换为EPSG:900913

var lonLat = new OpenLayers.LonLat( 27.242222222222, 40.228055555556 )
      .transform(
        new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
        map.getProjectionObject() // to Spherical Mercator Projection
      );

转换是错误的:您的lonLat变量位于EPSG:4326中,因此您应该从EPSG:4326转换为EPSG:900913

var lonLat = new OpenLayers.LonLat( 27.242222222222, 40.228055555556 )
      .transform(
        new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
        map.getProjectionObject() // to Spherical Mercator Projection
      );
使用时,无需进行任何转换

var map = L.map('map').setView(40.228055555556, 27.242222222222],
  13);

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
  attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);

L.marker([40.228055555556, 27.242222222222]).addTo(map)
  .bindPopup('A pretty CSS3 popup.<br> Easily customizable.')
  .openPopup();
var map=L.map('map').setView(40.2280555556,27.242222),
13);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png'{
属性:“©;贡献者”
}).addTo(地图);
L.标记([40.2280555556,27.242222])。添加到(地图)
.bindPopup('一个漂亮的CSS3弹出窗口。
易于定制。') .openPopup();
使用时,无需进行任何转换

var map = L.map('map').setView(40.228055555556, 27.242222222222],
  13);

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
  attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);

L.marker([40.228055555556, 27.242222222222]).addTo(map)
  .bindPopup('A pretty CSS3 popup.<br> Easily customizable.')
  .openPopup();
var map=L.map('map').setView(40.2280555556,27.242222),
13);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png'{
属性:“©;贡献者”
}).addTo(地图);
L.标记([40.2280555556,27.242222])。添加到(地图)
.bindPopup('一个漂亮的CSS3弹出窗口。
易于定制。') .openPopup();
您所说的“我似乎在做错误的转换”是什么意思?你期望看到什么?你实际上得到了什么?我用它来看看长lat的实际位置。例如,亚琛角战役(50.76666667 6.1)就是在亚琛进行的。所以我希望它能显示亚琛,但它却显示了一个真正不同的地方。你说的“似乎我在做错误的转换”是什么意思?你期望看到什么?你实际上得到了什么?我用它来看看长lat的实际位置。例如,亚琛角战役(50.76666667 6.1)就是在亚琛进行的。所以我希望它显示的是亚琛,但它显示的是一个真正不同的地方。谢谢,但我想它仍然是错误的,因为它应该在土耳其的某个地方。我编辑了上面的答案。顺序是(lon,lat),而不是(lat,lon),就像之前版本的代码片段一样。谢谢,但我想它仍然是错误的,因为它应该在土耳其的某个地方。我编辑了上面的答案。顺序是(lon,lat),而不是(lat,lon),与代码段的前一版本不同。