OpenLayers投影到不同位置与Bing地图

OpenLayers投影到不同位置与Bing地图,openlayers,bing-maps,openlayers-3,Openlayers,Bing Maps,Openlayers 3,我正在使用OpenLayers和bing地图。我添加了一个标记,但它显示在不同的位置。和我在bing地图中使用的坐标相同,它显示在正确的位置 这里 这是OpneLayers的结果 我需要转换坐标吗?是的,确实需要将坐标转换为EPSG:3857 你有两个不同的选择 1) 您可以使用epsg:4326构建地图。这意味着将进行客户瓷砖重投影 这样做 var map = new ol.Map({ layers: [tileLayer], target: 'map', view

我正在使用OpenLayers和bing地图。我添加了一个标记,但它显示在不同的位置。和我在bing地图中使用的坐标相同,它显示在正确的位置

这里

这是OpneLayers的结果


我需要转换坐标吗?

是的,确实需要将坐标转换为
EPSG:3857

你有两个不同的选择

1) 您可以使用epsg:4326构建地图。这意味着将进行客户瓷砖重投影

这样做

var map = new ol.Map({
    layers: [tileLayer],
    target: 'map',
    view: new ol.View({
        projection:'EPSG:4326',
        center: [-22.3869608, -49.7602708],
        zoom: 5,
    })
});
var map = new ol.Map({
    layers: [tileLayer],
    target: 'map',
    view: new ol.View({
        center: ol.proj.transform([-22.3869608, -49.7602708], 'EPSG:4326','EPSG:3857');
        zoom: 5,
    })
});
2) 您可以从您的中心转到“EPSG:3857”。应使用此投影,因为您没有在ol.view配置中指定它。(从附着到地图的第一个平铺层自动获取投影)

这样做

var map = new ol.Map({
    layers: [tileLayer],
    target: 'map',
    view: new ol.View({
        projection:'EPSG:4326',
        center: [-22.3869608, -49.7602708],
        zoom: 5,
    })
});
var map = new ol.Map({
    layers: [tileLayer],
    target: 'map',
    view: new ol.View({
        center: ol.proj.transform([-22.3869608, -49.7602708], 'EPSG:4326','EPSG:3857');
        zoom: 5,
    })
});
结束向量点

var p1 = new ol.Feature({
            geometry: new ol.geom.Point(ol.proj.transform([-22.3869608, -49.7602708], 'EPSG:4326','EPSG:3857'))
        });

的确,您需要将您的coords转换为
EPSG:3857

你有两个不同的选择

1) 您可以使用epsg:4326构建地图。这意味着将进行客户瓷砖重投影

这样做

var map = new ol.Map({
    layers: [tileLayer],
    target: 'map',
    view: new ol.View({
        projection:'EPSG:4326',
        center: [-22.3869608, -49.7602708],
        zoom: 5,
    })
});
var map = new ol.Map({
    layers: [tileLayer],
    target: 'map',
    view: new ol.View({
        center: ol.proj.transform([-22.3869608, -49.7602708], 'EPSG:4326','EPSG:3857');
        zoom: 5,
    })
});
2) 您可以从您的中心转到“EPSG:3857”。应使用此投影,因为您没有在ol.view配置中指定它。(从附着到地图的第一个平铺层自动获取投影)

这样做

var map = new ol.Map({
    layers: [tileLayer],
    target: 'map',
    view: new ol.View({
        projection:'EPSG:4326',
        center: [-22.3869608, -49.7602708],
        zoom: 5,
    })
});
var map = new ol.Map({
    layers: [tileLayer],
    target: 'map',
    view: new ol.View({
        center: ol.proj.transform([-22.3869608, -49.7602708], 'EPSG:4326','EPSG:3857');
        zoom: 5,
    })
});
结束向量点

var p1 = new ol.Feature({
            geometry: new ol.geom.Point(ol.proj.transform([-22.3869608, -49.7602708], 'EPSG:4326','EPSG:3857'))
        });

我尝试了这两种方法,但仍然将标记添加到错误的位置。如何将未知坐标转换为EPSG:3857?只需将坐标从该
中心:ol.proj.transform([-22.3869608,-49.7602708]
转换为该
中心:ol.proj.transform([-49.7602708,-22.3869608]
。对向量点执行同样的操作。你的坐标不是未知的,它是wgs84 lon/lat。我尝试了这两个选项,但仍然将标记添加到错误的位置。如何将未知坐标转换为EPSG:3857?只需从该
中心翻转坐标:ol.proj.transform([-22.3869608,-49.7602708]
到此
中心:ol.proj.transform([-49.7602708,-22.3869608]
。对向量点执行相同操作。您的坐标不是未知的,它是wgs84 lon/lat。