[OpenLayers-Users] got an error when used geojson with http andfixedstrategy

Arnd Wippermann arnd.wippermann at web.de
Wed Dec 19 07:24:25 PST 2012


you have to provide an url and not a string:

url: "pois",

Arnd 

-----Ursprüngliche Nachricht-----
Von: openlayers-users-bounces at lists.osgeo.org
[mailto:openlayers-users-bounces at lists.osgeo.org] Im Auftrag von Liesel
Gesendet: Mittwoch, 19. Dezember 2012 15:15
An: openlayers-users at lists.osgeo.org
Betreff: [OpenLayers-Users] got an error when used geojson with http
andfixedstrategy

Hey List,
i've got a problem with the http-protocol. It seems simple but I got a an
error-message:
Uncaught TypeError: Cannot call method 'equals' of null
OpenLayers.debug.js:43300

I had a look in the code. The first argument of the function, mapProjection,
is null thats right. And null.equals() cannot be working.
The relevant function merge is in the OpenLayers.Strategy.Fixed class.

Maybe I have to set a projection of all layers added to my map. But it still
not working with that.
VectorFeatures comes from a geojson-file. I tried to add them by myself.
With vectorLayer.addFeatures() this works. But I would like to use the
fixedStrategy or the refreshStrategy. Therefor I have to use the
http-protocol in openLayers.

Does anybody have a clue why its not working? Where do I have to set the
projection? Anywhere else than in map and vectorLayer?

Thanks in advance.
Liesel


Thats the js-code:
function readFeatures(fun) {
    var read;
    $.get("pois", {}, function(data, textStatus, jqXHR) {
        if(textStatus == "success") {
            fun(data);
        } else {
            alert("Cannot receive POIs");
        }
    });
}

function loadMap() {
    map = new OpenLayers.Map('map', {
        projection: "EPSG:4326"
        displayProjection: "EPSG:4326"
    });

    var vec1_GeoJSON = new OpenLayers.Layer.Vector("vec1_GeoJSON", {
        projection: new OpenLayers.Projection("EPSG:4326"),
        protocol: new OpenLayers.Protocol.HTTP({
            url: "pois",
            format: new OpenLayers.Format.GeoJSON({})
        }),
        strategies: [new OpenLayers.Strategy.Fixed()]
    });
    map.addLayer(vec1_GeoJSON);

    var osm = new OpenLayers.Layer.OSM("simple OSM", null);
    map.addLayer(osm);

    map.setCenter(new OpenLayers.LonLat(7.6, 51.9), 13);


/* The following works as expected */
    map2 = new OpenLayers.Map('map2', {
        projection: "EPSG:4326"
        displayProjection: "EPSG:4326"
    });

    var vectorLayer2 = new OpenLayers.Layer.Vector("GeoJSON");
    map.addLayer(vectorLayer2);
    var geojson_format = new OpenLayers.Format.GeoJSON();
    readFeatures(function(data) {
            data = geojson_format.read(data_json);
            vectorLayer2.addFeatures(data);
    });
    map2.addLayer(osm);

    var osm2 = new OpenLayers.Layer.OSM("simple OSM", null);
    map2.addLayer(osm2);

    map2.setCenter(new OpenLayers.LonLat(7.6, 51.9), 13);

}


And the geoJson-File:
{"type": "FeatureCollection", "features": [ {"type": "Feature",
"geometry":{"type":"Point", "coordinates":[3.0, 5.0]}, "properties":
{"id": "1"}}, {"type": "Feature", "geometry":{"type":"Point",
"coordinates":[51.962944, 7.628694]}, "properties": {"id": "2"}},
{"type": "Feature", "geometry":{"type":"Point", "coordinates":[7.6170653,
51.96770399999998]}, "properties": {"id":
"8"}}, {"type": "Feature", "geometry":{"type":"Point", "coordinates":[3.0,
5.0]}, "properties": {"id": "15"}}, {"type":
"Feature", "geometry":{"type":"Point",
"coordinates":[-129.8626730292999, 90.0]}, "properties": {"id": "18"}},
{"type": "Feature", "geometry":{"type":"Point",
"coordinates":[-12.074459351599, 90.0]}, "properties": {"id": "19"}},
{"type": "Feature", "geometry":{"type":"LineString",
"coordinates":[[-129.8626730292999, 90.0], [-139.74427718669995, -90.0],
[-90.99020764604, -90.0], [116.78968704860017, 90.0], [122.28750441223,
90.0]]}, "properties": {"id": "20"}}, {"type": "Feature",
"geometry":{"type":"Polygon", "coordinates":[[[35.968871980900076,
90.0], [-148.97193009779994, 90.0], [128.43927301839005, 90.0],
[35.968871980900076, 90.0]]]}, "properties": {"id": "21"}}, {"type":
"Feature", "geometry":{"type":"Polygon", "coordinates":[[[-15.657445058227,
50.172238148749], [-28.197895009071, 29.868652511388], [-39.544016391039,
45.992088165134], [-15.657445058227, 50.172238148749]]]}, "properties":
{"id": "22"}}]} _______________________________________________
Users mailing list
Users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/openlayers-users



More information about the Users mailing list