Czy ważne jest posiadanie elementu właściwości w geoJSON featureCollection?

16

Czy poprawne jest posiadanie elementu właściwości z elementem featureCollection jako elementem nadrzędnym?

Jest to, zgodnie z geojson.org ważne:

{ "type": "FeatureCollection",
  "features": [
              { "type": "Feature",
                "geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
                "properties": {"prop0": "value0"}
              }
              ]
}

Ale nie mogę znaleźć, czy jest to ważne, czy też jest to nieprawidłowe:

{ "type": "FeatureCollection",
  "properties" : { "description" : "This is the geometry for..." }
  "features": [
              { "type": "Feature",
                "geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
                "properties": {"prop0": "value0"}
              }
              ]
}

Zgodnie z odpowiedzią poniżej umieszczenie go tam nie jest poprawne, ale programy / skrypty nie będą go tam znać.

Pozwólcie, że ponownie sformułuję pytanie: (Gdzie) Czy można podać jakieś opisowe informacje o nieruchomości jako całości?

StUrb
źródło

Odpowiedzi:

10

2.3 Obiekty kolekcji obiektów

Obiekt GeoJSON typu „FeatureCollection” to obiekt kolekcji obiektów.

Obiekt typu „FeatureCollection” musi mieć element o nazwie „cechy”. Wartość odpowiadająca „cechom” to tablica. Każdy element w tablicy jest obiektem funkcji, jak zdefiniowano powyżej.

Myślę, że to wyraźnie oznacza, że ​​jeśli obiekt ma dodatkowe elementy, nie powoduje to, że jest on nieprawidłowy.

Obiekty Ecmascript są bardzo otwarte.

Tak, więc możesz mieć element właściwości na najwyższym poziomie kolekcji funkcji, ale nie oczekuj, że jakieś narzędzia go znają, lub skopiuj ...

juliański
źródło
1
OK Wystarczająco :) Ale jakie jest miejsce do przechowywania informacji o samej kolekcji zamiast funkcji?
stUrb
Nie ma jednego w specyfikacji.
Calvin
Ponieważ FeatureCollection jest obiektem pierwszej klasy, wszelkie właściwości będą dotyczyły kolekcji, a nie żadnej funkcji. Dodaj tyle, ile chcesz, lub dodaj właściwość „metadanych”, której wartością jest mapa.
Julian
Innym sposobem myślenia na ten temat jest to, że musisz podklasę FeatureCollection dla swoich potrzeb. To naprawdę metafora, a nie konstrukcja programowa, ponieważ ECMAscript nie myśli o obiektach w ten sposób.
Julian
1
Specyfikacja zezwala członkom zagranicznym w sekcji 6.1. tools.ietf.org/html/draft-ietf-geojson-03#section-6 . Jest to więc legalne, ale zachowanie będzie zależało od aplikacji.
intotecho
9

Krótka odpowiedź brzmi „nie” - nie można mieć propertieselementu na FeatureCollectionobiekcie:

https://tools.ietf.org/html/rfc7946#section-7.1

Elementy „geometrii” i „właściwości” GeoJSON definiują obiekt Feature. Odpowiednio obiekty FeatureCollection i Geometry NIE MUSZĄ zawierać elementu „geometria” lub „właściwości”.

Neil
źródło
Z mojego czytania, sformułowanie na tej mandatów, że nie można nazwać członkiem FeatureCollection "properties" jak PO robi, ale to nie wyklucza Cię z nazywając to coś innego jak "metadata"albo "description". Użyłem kilku członków najwyższego poziomu w mapach internetowych opartych na geojsonie. Dobra aktualizacja, @Niel.
nronnei
1

Również uważam, że przydatne byłyby „właściwości” najwyższego poziomu, jeden na poziomie kolekcji funkcji.

Ale obejście, które zrobiłem, polegało na stworzeniu dodatkowej operacji dla kolekcji operacji, wypełnieniu właściwości zgodnie z potrzebami i po prostu ustawieniu obiektu geometrii na NULL. Z mojej lektury specyfikacji wydaje się to dozwolone i pozostaje w granicach normy.

Pman
źródło