Aran Freel
Aran Freel

Reputation: 3215

Why is mapbox rejecting my geojson as invalid.

I have a function which is parsing JSON provided by the foursquare api to GeoJSON, which I then provide to the MapBox API using JSON.stringify() on the GeoJSON object then loading it to the map with the following code

MapBox API returns saying that my GeoJSON is invalid.

I checked the GeoJSON specification and it matches exactly !

Can anybody spot the error ?

loading function

this.map.on("load", () => {
  this.map.addSource("venues", {
    type: "geojson",
    data: geojson
  });

GeoJSON

{
  "type": "FeatureCollection",
  "features": [
    { "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [48.31272484668867, 18.092948926236698]
      },
      "properties": {
        "id": "4d0a6cc933d6b60c1c569a85",
        "venueName": "Peciatkaren",
        "address": "Kmetkova 32",
        "distance": 20119,
        "icon": {
          "iconUrl": "../assets/img/dot_PNG41.png",
          "iconSize": [25, 25],
          "iconAnchor": [0, 0]
        }
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [48.30957732182106, 18.087218856597]
      },
      "properties": {
        "id": "4bd5ad37637ba5933bc3f670",
        "venueName": "Zanzibar",
        "address": "Štefánikova trieda 43",
        "distance": 20030,
        "icon": {
          "iconUrl": "../assets/img/dot_PNG41.png",
          "iconSize": [25, 25],
          "iconAnchor": [0, 0]
        }
      }
    }]
}

Upvotes: 3

Views: 901

Answers (1)

pathmapper
pathmapper

Reputation: 1937

There is nothing wrong with your GeoJSON and there are several ways how you could use it.

Docs:

https://www.mapbox.com/mapbox-gl-js/api/#geojsonsource

https://www.mapbox.com/mapbox-gl-js/style-spec/#sources-geojson

One example below:

var yourgeojson = {
  "type": "FeatureCollection",
  "features": [
    { "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [48.31272484668867, 18.092948926236698]
      },
      "properties": {
        "id": "4d0a6cc933d6b60c1c569a85",
        "venueName": "Peciatkaren",
        "address": "Kmetkova 32",
        "distance": 20119,
        "icon": {
          "iconUrl": "../assets/img/dot_PNG41.png",
          "iconSize": [25, 25],
          "iconAnchor": [0, 0]
        }
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [48.30957732182106, 18.087218856597]
      },
      "properties": {
        "id": "4bd5ad37637ba5933bc3f670",
        "venueName": "Zanzibar",
        "address": "Štefánikova trieda 43",
        "distance": 20030,
        "icon": {
          "iconUrl": "../assets/img/dot_PNG41.png",
          "iconSize": [25, 25],
          "iconAnchor": [0, 0]
        }
      }
    }]
};

map.on('load', function () {

map.addSource('someid', {
    type: 'geojson',
    data: yourgeojson
});

map.addLayer({
        "id": "points",
        "type": "symbol",
        "source": "someid",
        "layout": {
            ...
        }
    });
});

Upvotes: 3

Related Questions