So legen Sie die Projektion für GeoJSON in openlayers3?

Meine Absicht ist zum laden von GeoJSON-Daten und zeigt Sie auf der Karte. Koordinaten des features angegeben in GeoJSON sind normal lon/lat. Aus irgendeinem Grund openlayers ist, wodurch Sie mit der Projektion verwendet, die von der Karte und ohne Konvertierung.

//Underlying sat layer.
var world = new ol.layer.Tile({
    source: new ol.source.MapQuest({layer: 'sat'})
});

//GeoJSON data.
var geojsonObject = {
    'type': 'FeatureCollection',
    'features': [
        {
            'type': 'Feature',
            'geometry': {
                'coordinates': [ 50.07539747, 19.76809501 ], 
                'type': 'Point'
            },
        }
    ]
};

var vectorSource = new ol.source.Vector({
    features: (new ol.format.GeoJSON()).readFeatures(geojsonObject)
});

var vectorLayer = new ol.layer.Vector({
    source: vectorSource
});

//Map.
map = new ol.Map({
    target: 'map',
    layers: [world, vectorLayer],
    view: new ol.View({
        center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
        zoom: 2
    })
});

Den Punkt gerendert wird in der Mitte der Karte. Indem Sie mehrere Punkte, die ich festgestellt, dass Sie sind in der Tat relativ zueinander verschieben, aber durch eine kleine Menge, die führt mich zu glauben, dass die aus irgendeinem Grund die Karte verwendet ein anderes Koordinatensystem für Sie.

Was ich versucht habe:
Einstellung crs im GeoJSON, bietet defaultDataProjection option zum formatieren. Ich benutze openlayers v3.8.2 und alle Lösungen, die ich online gefunden haben, sind sehr veraltet (und soweit ich sehen kann die API verwendet werden, um so besser, vielleicht sollte ich einfach wechseln Sie zu einem alten version).

InformationsquelleAutor boreq | 2015-09-08
Schreibe einen Kommentar