Mehr

OpenLayers 2, GeoJSON kann die Koordinaten nicht zum Laufen bringen

OpenLayers 2, GeoJSON kann die Koordinaten nicht zum Laufen bringen


Ich versuche, einige Polygone auf einer Karte anzuzeigen, und bin neu bei OpenLayers, Karten und GeoJSON.

Was funktioniert zuerst:

vector1 = new OpenLayers.Layer.Vector("GeoJSON1", { Projektion: "EPSG:4326", Strategien: [new OpenLayers.Strategy.Fixed()], protocol : new OpenLayers.Protocol.HTTP({ url: "test. php", Format: neues OpenLayers.Format.GeoJSON() }) });

Dieser Code funktioniert, der GeoJSON aus test.php wird auf dem Server angezeigt, an der Position, an der er sein sollte. Aber GeoJSON, das ich zu erreichen versuche, ist auf einem anderen Server und es werden Fehler ausgegeben (ich weiß, dass ich Header setzen kann und es funktionieren würde), aber ich möchte es nicht auf diese Weise tun.

Das funktioniert nicht:

var geojs_format = new OpenLayers.Format.GeoJSON(); var geojsval= { "Typ": "Polygon", "Koordinaten": [[[11.0878902207, 45.1602390564], [14.931640625, 40.9228515625], [0.8251953125, 41.0986328125], [7.63671875, 48.96484375], [11.0878902207, 45.1602390564] ; vector = new OpenLayers.Layer.Vector("GeoJSON",{projection:"EPSG:4326"}); vector.addFeatures(geojs_format.read(geojsval));

Dies funktioniert nicht - Es zeigt Polygon an einer anderen Stelle an, obwohl die Projektion auf die gleiche Weise angegeben ist (oder zumindest für mich ... ).


Ich habe das gelöst. Beim Erstellen von OpenLayers.Format.GeoJSON können Sie eine bestimmte Projektion wie folgt festlegen…

var geojs_format = new OpenLayers.Format.GeoJSON({ 'internalProjection': new OpenLayers.Projection("EPSG:900913"), 'externalProjection': new OpenLayers.Projection("EPSG:4326") });

Dies löste das Problem.


Schau das Video: OpenLayers Introduction for Beginners