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?

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


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


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.