从GoogleMaps使用Long和Lat时,无法在OpenLayers中设置坐标

时间:2015-11-29 13:49:55

标签: google-maps openstreetmap openlayers-3

以下是德黑兰在Google地图上的坐标。 https://www.google.com/maps/place/Tehran/@35.6964895,51.0696315,10z/data=!3m1!4b1!4m2!3m1!1s0x3f8e00491ff3dcd9:0xf0b3697c567024bc

35.6961° N, 51.4231° E

我正试图在OpenLayers中找到这个坐标,但我没有运气,这是我的代码:

map = new ol.Map({
    target: 'sample-map',
    layers: [
        new ol.layer.Tile({
            source: new ol.source.OSM()
        })
    ],
    view: new ol.View({         
        center:  [35.6961, 51.4231],
        zoom: 4
    })
});

我也试图以度数获取当前坐标,但我不知道如何。

1 个答案:

答案 0 :(得分:1)

我不完全确定问题是什么,但我可以这样说:您需要将center上的参数换成[51.4231, 35.6961]

根据Openlayers documentationcenter的格式为[x-axis, y-axis]或您的[East, North]格式。

在您的特定情况下,您的源投影不是纬度/经度,因此您必须进行转换。以下代码适合您:

map = new ol.Map({ target: 'sample-map', layers: [ new ol.layer.Tile({ source: new ol.source.OSM() })], view: new ol.View({
center: ol.proj.transform([51.4231, 35.6961], 'EPSG:4326', new ol.source.OSM().getProjection()), zoom: 10 }) });