Openlayers + GeoJSON

Hi, ich verzweifle schon eine ganze Weile, da ich eigentlich meine Web-Anwendung nur auf geoJSON portieren wollte. Nachdem das partout nicht klappen wollte, habe ich mal ein ganz einfaches Beispiel gemacht:


function addOverlays()
	{
		var vector_format=new OpenLayers.Format.GeoJSON();
		var vector_protocol= new OpenLayers.Protocol.HTTP({
			url: 'geo.js',
			format:vector_format
		});
		var vector_strategies=[new OpenLayers.Strategy.Fixed()];
		vector_layer=new OpenLayers.Layer.Vector("test",{
			protocol:vector_protocol,
			strategies:vector_strategies
		});
		map.addLayer(vector_layer);
				
	}

geo.js


{
    "type": "Feature",
    "id": "OpenLayers.Feature.Vector_107",
    "properties": {},
    "geometry": {
        "type": "Point",
        "coordinates": [-104.98, 39.76]
    }
}

An JSON Dateien habe ich schon alles mögliche ausprobiert, aber es wird immer nur ein einziger Punkt neben Afrika angezeigt. Menno, das kann doch nicht sein? Habe schon überall gesucht und auch Projektion etc. verändert. grummel

Mein Fehler, hatte die Datei vermurkst und die falsche Projektion gesetzt :confused:

So langsam springe ich echt im Kreis. Und zwar will es partout nicht klappen, dass ich von meinem Server die JSON live ziehe. Es wird genau derselbe Aufruf geschickt, wie manuell, aber irgendwie stellt OpenLayers nichts da.

Encoding kontrolliert, Server geloggt, …

function addOverlays()
	{
		var vector_format=new OpenLayers.Format.GeoJSON();
		var vector_protocol= new OpenLayers.Protocol.HTTP({
			url: 'http://localhost:8080/nodes/',
			format:vector_format
		});
		var vector_strategies=[new OpenLayers.Strategy.Fixed()];
		vector_layer=new OpenLayers.Layer.Vector("öpö",{
			projection:proj4326,
			protocol:vector_protocol,
			strategies:vector_strategies
		});
		map.addLayer(vector_layer);			
	}

Wenn ich das in einer lokalen Datei mache, brauch ich doch keinen Proxy, oder? Firebug zeigt 200 ok aber keinen Inhalt…

Ist evtl. schon ein Same origin policy Problem. Wenn du mit lokaler Datei eine aus dem Dateisystem (file:// Url) geöffnete Html-Seite meinst, dann kann die mit Firefox nur Dateien aus dem selben Verzeichnis oder Unterverzeichnissen laden. Das GeoJSON von http://localhost:8080/nodes/ oder einer Website laden geht dann IMO nicht, da anderes Protokoll, Host + Port. Die Html Datei muss dann z.B. auch unter http://localhost:8080 liegen und von dort aufgerufen werden.

Daran lag es dann natürlich auch. Erstaunlich wie viel Zeit man investieren kann um ein Webframework und ein Webserver zu konfigurieren seufz

Trotzdem natürlich vielen Dank ikonor :slight_smile: