x

Openlayers + GeoJSON


  1. Openlayers + GeoJSON · !i! (Gast) · 01.05.2012 15:21 · [flux]

    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*


    • Re: Openlayers + GeoJSON · !i! (Gast) · 01.05.2012 15:58 · [flux]

      Mein Fehler, hatte die Datei vermurkst und die falsche Projektion gesetzt 🤔


    • Re: Openlayers + GeoJSON · !i! (Gast) · 01.05.2012 17:12 · [flux]

      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...


    • Re: Openlayers + GeoJSON · ikonor (Gast) · 01.05.2012 20:59 · [flux]

      !i! wrote:

      Wenn ich das in einer lokalen Datei mache, brauch ich doch keinen Proxy, oder?

      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.


    • Re: Openlayers + GeoJSON · !i! (Gast) · 01.05.2012 22:56 · [flux]

      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 🙂