Uncaught InvalidValueError: kein Feature oder FeatureCollection

7

Nachdem ich ein Video von Google Devs gesehen habe, habe ich mich entschlossen, eine regionale Karte von Großbritannien zu erstellen. Es gab ein paar Möglichkeiten, die ich auf dieser Seite erwähnt habe und die ich seither ablehnen musste *

Also habe ich diese Seite benutzt (Beispielseite für Datendownloads): Ссылка

Beachten Sie den GeoJSON Download als dritten Link nach unten? Es ist ungefähr 1 MB Dateigröße. Als ich es zum ersten Mal mit meiner Karte ausprobiert habe:

%Vor%

Ich habe den obigen Fehler erhalten: Uncaught InvalidValueError: kein Feature oder FeatureCollection

Fix Versuch 1 - Google es

Googeln des Fehlers kam mit nichts nützlichem zurück.

Fix Versuch 2 - Schrumpf es

Ich dachte, es wäre vielleicht die schiere Größe des Biests, also habe ich es mit mapshaper.org zu einem überschaubaren 10K geschrumpft. Immer noch kein Glück!

Fix Versuch 3 - Lint es

Vielleicht war mein GeoJSON schlecht formatiert? Aber wie könnte es sein, wenn man bedenkt, dass es gerade dort auf mapit.org gearbeitet hat, aber ich fand diese wundervolle Seite für das Löschen von GeoJSON-Daten: Ссылка - Das Linting funktionierte ! Anscheinend funktionierte der GeoJSON so gut, dass er mein Polygon von East Anglia in Großbritannien in seiner ganzen Pracht zeichnete (Anmerkung geojsonlint verwendet OpenStreetMap). Aber immer noch Kein Glück

Fix Versuch 4 - TopoJson

Ich hoffte, ich könnte die Regionen kombinieren und gleichzeitig komprimieren. Ich dachte verzweifelt, dass Topojson funktionieren würde. Ich habe es versucht - ich habe immer noch denselben Fehler. Hier ist ein Link zu meiner Topojson-Datei, die auf Google Drive geteilt wird: someregions.json Kein Glück .

Fix Versuch 5 - Fügen Sie Feature-Code zum Start von JSON

hinzu

Die aktuelle GeoJSON-Datei wird gestartet     {"bbox": [- 0.745702,51.448473,1.767999,52.98991], "type": "GeometryCollection", "Geometrien": ...

Ich habe hinzugefügt:

%Vor%

Fix Versuch 6

Wiederholen Sie verschiedene Regionen, da diese den bbox-Parameter nicht in der Nähe des Anfangs enthalten, sondern einfach starten     {"Typ": "Polygon", "Koordinaten": [[[-3.155785, 53.427385], [-3.151533, 53.427328], [...]

Immer noch kein Glück .

In (Fehlgeschlagen) Schlussfolgerung

Obwohl ich bewiesen habe, dass meine Datei klein genug , getönt und an anderer Stelle funktioniert habe ich immer noch diese ärgerlichen Fehlermeldungen von der Konsole um sie auf meine Karte zu setzen.

%Vor%

Hier ist meine geschrumpfte GeoJSON-Datei, die öffentlich über GDrive freigegeben wurde: Ссылка

Meine nächsten Versuche werden darin bestehen, dass topojson alle Regionen zu einem mit internen Grenzen komprimiert, aber ich wollte zuerst hier nachsehen, ob jemand weiß, was mein Problem sein könnte? Weil das noch ein paar Stunden vergeblicher Energieverschwendung sein kann.

* Der Versuch, Ordanance Survey-Daten zu verwenden, ist fehlgeschlagen, da sie SHD-Daten und nicht SHP bereitgestellt haben, wie in einer vorherigen Frage zu diesem Thema angegeben. Also konnte ich es nicht mit Ogr2ogr in GeoJSON konvertieren.

    
RustyFluff 24.03.2014, 07:20
quelle

2 Antworten

15

Die Spezifikation für GeoJSON finden Sie unter Ссылка Die relevante (jedoch experimentelle) Google Maps-API-Dokumentation finden Sie unter Ссылка

Damit GeoJSON von Google Maps akzeptiert werden kann, müssen Sie ein von MapIt zurückgegebenes Polygon (oder ähnliches) in ein Feature oder FeatureCollection einbinden. Hier ein Beispiel für das bermuda-Dreieck:

%Vor%

für die von Ссылка bereitgestellten Daten muss es sein:

%Vor%     
Dr.Molle 24.03.2014, 08:08
quelle
9

Ich hatte das gleiche Problem (oder zumindest ähnlich) und löste es durch einen zusätzlichen Schritt.

Herkunft der Daten: Mein semantisches Netzwerk liefert in einer ersten Runde die Daten über die Höhlen in Südfrankreich im GeoJSON-Format. Dies wird direkt importiert über:

  

map.data.loadGeoJson (theUrl);

Da wir mit diesen Daten möglicherweise unabhängig vom semantischen Netzwerk arbeiten möchten (die App ist ein Thick-Client), werden die Höhlen lokal über jStorage gespeichert. Das Iterieren der Features der Map und das direkte Speichern dieser Objekte in jStorage ist aufgrund von Zirkelreferenzen fehlgeschlagen. Ich habe eine handgefertigte Routine (nicht generisch genug, aber passend zum Zweck) gemacht, um das map.data.Feature in ein JavaScript-Objekt zu verwandeln, das gespeichert werden kann.

Beim Abrufen der Daten aus dem Geschäft:

%Vor%

löst den Uncaught InvalidValueError: not a Feature or FeatureCollection Fehler aus.

Aber:

%Vor%

Funktioniert gut.

Meine Interpretation ist, dass die Funktion addGeoJson ein JavaScript-Objekt und keine Zeichenfolge benötigt.

Sample geoJson (der Orignal "Höhle") Wert:

%Vor%     
Ronald Poell 29.05.2014 18:55
quelle