gpt4 book ai didi

javascript - OpenLayers 投影

转载 作者:行者123 更新时间:2023-11-30 17:06:09 28 4
gpt4 key购买 nike

我对 OpenLayers 3 有点问题。我有以下脚本:

var map = new ol.Map({
view : new ol.View({
center : [5.611155, 52.238879],
projection : 'EPSG:4326',
zoom : 8.5,
minZoom : 8.5,
maxZoom : 12.5
}),
layers : [
new ol.layer.Tile({
source : new ol.source.OSM()
}),

],
target : 'map'
});

如果我没记错的话,这应该显示一张以荷兰某地为中心的 map 。但是我没有显示 map ,而是只看到蓝色。即使我将缩放设置为 1,也看不到世界。

如果我从 View 中删除投影属性,问题似乎就不存在了。但是当然我应该在另一个坐标系中给出所有坐标,这是不可能的,因为我也依赖于其他系统。

当我从 View 属性中删除投影属性并加载 GeoJSON 文件时,如下所示:

new ol.layer.Vector({
source: new ol.source.GeoJSON({
projection: 'EPSG:4326',
url: 'data/map.geojson'
})
})

它应该在荷兰之上放置一个图层,但 GeoJSON 却显示在非洲某处。

有人可以帮助我吗?

最佳答案

Openstreetmap 的投影与 OL3 不同。 OSM 使用 EPSG:900913,当您将其用作背景时,您必须将其用作主投影。

这将适用于您问题的第一部分:

var centerpos = [5.611155, 52.238879]; // Your original position in LatLon
var newpos = ol.proj.transform(centerpos,'EPSG:4326','EPSG:900913');
var map = new ol.Map({
view : new ol.View({
projection : 'EPSG:900913', // OSM projection
center : newpos,
zoom : 8.5,
minZoom : 8.5,
maxZoom : 12.5
}),
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
target : 'map'
});

关于你关于 GeoJson 的最后一个问题,我认为它会起作用,因为你设置了投影(最终在源代码中设置了投影),但我还没有测试过它。

关于javascript - OpenLayers 投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27985023/

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