簡體   English   中英

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,也看不到任何世界。

如果我從視圖中刪除了projection屬性,問題似乎就不存在了。 但是當然我應該在另一個坐標系中給出所有坐標,這是不可能的,因為我也依賴於其他系統。

當我從view屬性中刪除projection屬性並加載了如下的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的最后一個問題,我認為它會起作用,因為您設置了投影(最終在源文件中設置了投影),但是我尚未對其進行測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM