如何将地图居中放置在 Open layer 3 中的某个位置
How to center a map on a position in Open layer 3
我需要将位置中心设置到我有坐标 [lat: '28.627671', lng: '77.216574'] 的印度德里的某个地方。我已经使用下面的代码使其工作,但仍然显示错误的位置。
map = new ol.Map({
target: 'map',
renderer: 'canvas',
view: new ol.View({
center: [0,0],
zoom: 4
})
});
var newLayer = new ol.layer.Tile({
source: new ol.source.OSM()
});
map.addLayer(newLayer);
map.addLayer(mapVectorLayer);
console.log(centerPosition);
map.getView().setCenter(ol.proj.transform([centerPosition.lng, centerPosition.lat], 'EPSG:4326', 'EPSG:3857'));
map.getView().setZoom(5);
我可能是因为你给坐标赋了字符串值。通过在变量前添加 +
将它们转换为数字,你应该没问题。
查看 JSFiddle 示例,它看起来像您想要执行的操作:http://jsfiddle.net/bbc7gup9/2/
还有一个片段:
var centerPosition = {
lat: '28.627671',
lng: '77.216574'
};
view.setCenter(ol.proj.transform([
+centerPosition.lng,
+centerPosition.lat
], 'EPSG:4326', 'EPSG:3857'));
view.setZoom(5);
只需翻转坐标即可。这样做:
map.getView().setCenter(ol.proj.transform([ 77.216574,28.627671], 'EPSG:4326', 'EPSG:3857'));
也请检查@Alexander Dude fiddle,按照他建议的方式传递坐标更安全。我很确定你有解决办法
我需要将位置中心设置到我有坐标 [lat: '28.627671', lng: '77.216574'] 的印度德里的某个地方。我已经使用下面的代码使其工作,但仍然显示错误的位置。
map = new ol.Map({
target: 'map',
renderer: 'canvas',
view: new ol.View({
center: [0,0],
zoom: 4
})
});
var newLayer = new ol.layer.Tile({
source: new ol.source.OSM()
});
map.addLayer(newLayer);
map.addLayer(mapVectorLayer);
console.log(centerPosition);
map.getView().setCenter(ol.proj.transform([centerPosition.lng, centerPosition.lat], 'EPSG:4326', 'EPSG:3857'));
map.getView().setZoom(5);
我可能是因为你给坐标赋了字符串值。通过在变量前添加 +
将它们转换为数字,你应该没问题。
查看 JSFiddle 示例,它看起来像您想要执行的操作:http://jsfiddle.net/bbc7gup9/2/
还有一个片段:
var centerPosition = {
lat: '28.627671',
lng: '77.216574'
};
view.setCenter(ol.proj.transform([
+centerPosition.lng,
+centerPosition.lat
], 'EPSG:4326', 'EPSG:3857'));
view.setZoom(5);
只需翻转坐标即可。这样做:
map.getView().setCenter(ol.proj.transform([ 77.216574,28.627671], 'EPSG:4326', 'EPSG:3857'));
也请检查@Alexander Dude fiddle,按照他建议的方式传递坐标更安全。我很确定你有解决办法