gpt4 book ai didi

openlayers-3 - OpenLayers 3.2.1 - 更改默认投影

转载 作者:行者123 更新时间:2023-12-01 20:12:10 24 4
gpt4 key购买 nike

我在尝试更改 map View 的默认投影时遇到了困难。

这是一个 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,我想轻松地映射它。

现在,我似乎无法让 map 更改投影并显示实际中心。

如有任何帮助,我们将不胜感激!谢谢!

最佳答案

由于您使用的是 MapQuest 图 block ,因此您的 map 必须采用 EPSG:3857 因为 ol3 不支持光栅重投影(自版本 3.11.0 起支持光栅重投影)但出于性能原因,通常建议重新投影矢量数据)。但是,通过在 vector source 上设置目标投影,您的 GeoJSON 矢量数据可以即时从 EPSG:4326 重新投影到 EPSG:3857。 .

例如:

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'
})
});

参见http://jsfiddle.net/qtcpjape/5/

关于openlayers-3 - OpenLayers 3.2.1 - 更改默认投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28815267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com