OpenLayers 3.2.1 - 更改默认投影
OpenLayers 3.2.1 - Change default projection
我在尝试更改地图视图的默认投影时遇到困难。
这是一个 JSFIDDLE:http://jsfiddle.net/qtcpjape/3/
$( document ).ready(function() {
var proj = new ol.proj.Projection({
code: 'EPSG:4326',
units: 'm',
extent: [-180.0000, -90.0000, 180.0000, 90.0000]
});
var map = new ol.Map({
target: 'map',
controls: [],
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({
layer: 'osm'
})
})
],
view: new ol.View({
center: [-90.78885827595732, 38.78662388327825],
projection: proj,
zoom: 15
})
});
});
我将从 EPSG:4326 中的 REST 调用获得 GeoJSON,我想轻松映射它。
现在,我似乎无法让地图更改投影并显示实际中心。
如有任何帮助,我们将不胜感激!谢谢!
当您使用 MapQuest 瓦片时,您的地图必须在 EPSG:3857
因为 ol3 不支持光栅重投影(从版本 [=14 开始支持光栅重投影=].
例如:
var vectorSource = new ol.source.GeoJSON({
...
projection: 'EPSG:3857'
});
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
var map = new ol.Map({
target: 'map',
controls: [],
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({
layer: 'osm'
})
}),
vectorLayer
],
view: new ol.View({
center: ol.proj.transform([6, 49], 'EPSG:4326', 'EPSG:3857'),
zoom: 3,
projection: 'EPSG:3857'
})
});
从 OpenLayers 3.11.0 开始,现在可以重新投影光栅源。查看 release notes.
因此,只需在视图(您已经这样做)和所有源(您目前没有这样做)上明确指定投影。 OpenLayers 完成剩下的工作!
我在尝试更改地图视图的默认投影时遇到困难。
这是一个 JSFIDDLE:http://jsfiddle.net/qtcpjape/3/
$( document ).ready(function() {
var proj = new ol.proj.Projection({
code: 'EPSG:4326',
units: 'm',
extent: [-180.0000, -90.0000, 180.0000, 90.0000]
});
var map = new ol.Map({
target: 'map',
controls: [],
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({
layer: 'osm'
})
})
],
view: new ol.View({
center: [-90.78885827595732, 38.78662388327825],
projection: proj,
zoom: 15
})
});
});
我将从 EPSG:4326 中的 REST 调用获得 GeoJSON,我想轻松映射它。
现在,我似乎无法让地图更改投影并显示实际中心。
如有任何帮助,我们将不胜感激!谢谢!
当您使用 MapQuest 瓦片时,您的地图必须在 EPSG:3857
因为 ol3 不支持光栅重投影(从版本 [=14 开始支持光栅重投影=].
例如:
var vectorSource = new ol.source.GeoJSON({
...
projection: 'EPSG:3857'
});
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
var map = new ol.Map({
target: 'map',
controls: [],
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({
layer: 'osm'
})
}),
vectorLayer
],
view: new ol.View({
center: ol.proj.transform([6, 49], 'EPSG:4326', 'EPSG:3857'),
zoom: 3,
projection: 'EPSG:3857'
})
});
从 OpenLayers 3.11.0 开始,现在可以重新投影光栅源。查看 release notes.
因此,只需在视图(您已经这样做)和所有源(您目前没有这样做)上明确指定投影。 OpenLayers 完成剩下的工作!