OpenLayers 投影
OpenLayers projection
我在使用 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'
});
如果我没记错的话,这应该显示一张以荷兰某地为中心的地图。但是我没有显示地图,而是只看到蓝色。即使我把缩放设置为1,也没有世界可看。
如果我从视图中删除投影属性,问题似乎就不存在了。但是当然我应该在另一个坐标系中给出所有坐标,这是不可能的,因为我也依赖于其他系统。
当我从视图属性中删除投影属性并加载这样的 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 的问题,我认为它会起作用,因为你设置了投影(最终在源代码中设置了投影),但我还没有测试它。
我在使用 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'
});
如果我没记错的话,这应该显示一张以荷兰某地为中心的地图。但是我没有显示地图,而是只看到蓝色。即使我把缩放设置为1,也没有世界可看。
如果我从视图中删除投影属性,问题似乎就不存在了。但是当然我应该在另一个坐标系中给出所有坐标,这是不可能的,因为我也依赖于其他系统。
当我从视图属性中删除投影属性并加载这样的 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 的问题,我认为它会起作用,因为你设置了投影(最终在源代码中设置了投影),但我还没有测试它。