GeoJSON featureCollection öğesinde bir özellikler öğesine sahip olmak geçerli mi?


16

Üst öğe olarak bir featureCollection öğesi içeren bir özellik öğesine sahip olmak geçerli mi?

Bu, geojson.org'a göre geçerlidir:

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

Ama bu geçerli ya da bu olması için geçerli olup olmadığını bulamıyorum:

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

Altındaki cevaba göre, oraya koymak geçerli değil, ancak programlar / komut dosyaları orada olduğunu bilmiyor.

Şimdi, soruyu yeniden ifade edeyim: (Nerede) Mülk hakkında bazı açıklayıcı bilgiler toplam olarak koymak mümkün mü ??

Yanıtlar:


10

2.3. Özellik Toplama Nesneleri

"FeatureCollection" türünde bir GeoJSON nesnesi, bir özellik toplama nesnesidir.

"FeatureCollection" türünde bir nesnenin "features" adlı bir üyesi olmalıdır. "Özelliklere" karşılık gelen değer bir dizidir. Dizideki her öğe, yukarıda tanımlandığı gibi bir özellik nesnesidir.

Bu açıkça nesnenin geçersiz yapmaz ek üyeler varsa anlamına gelir.

Ecmascript nesneleri çok açık.

Yani evet, bir özellik koleksiyonunun en üst düzeyinde bir özellikler öğesine sahip olabilirsiniz, ancak herhangi bir aracın orada olduğunu bilmesini veya kopyalamasını beklemeyin ...


1
Tamam Oldukça adil :) Peki, özellik yerine koleksiyonun kendisi hakkında bilgi depolayabileceğiniz yer nedir?
stUrb

Spesifikasyonda bir tane yok.
Calvin

FeatureCollection birinci sınıf bir nesne olduğundan, herhangi bir özellik koleksiyonla ilgili olur, herhangi bir özellik değildir. İstediğiniz kadar ekleyin veya değeri harita olan bir "meta veri" özelliği ekleyin.
Julian

Bunu düşünmenin başka bir yolu da, gereksinimleriniz için FeatureCollection alt sınıfını yapmanız gerektiğidir. ECMAscript nesneleri bu şekilde düşünmediği için burada bir programlama yapısı yerine gerçekten bir mecaz.
Julian

1
Teknik özellik, Bölüm 6.1'deki Yabancı Üyelere izin vermektedir. tools.ietf.org/html/draft-ietf-geojson-03#section-6 . Bu yüzden yasal, ancak davranış uygulamaya bağlı olacaktır.
intotecho

9

Kısa cevap hayır - propertiesbir FeatureCollectionnesnede bir öğe olması geçerli değil :

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

GeoJSON "geometri" ve "özellikler" üyeleri bir Feature nesnesi tanımlar. FeatureCollection ve Geometry nesneleri, sırasıyla, bir "geometri" veya "özellikler" üyesi İÇERMEMELİDİR.


Benim okuma itibaren bu görev üzerinde ifadeleri o bir FeatureCollection üyesi isim olamaz "properties" OP yaptığı gibi, ancak başka bir şey arayarak sizi engellemez gibi "metadata"ya "description". Web haritalarında geojson'a dayanan birkaç üst düzey üye kullandım. İyi güncelleme, @Niel.
nronnei

1

Ben de bir özellik toplama düzeyinde bir üst düzey 'özellikler' yararlı olacağını düşünüyorum.

Ama yaptığım iş, özellik koleksiyonu için ek bir özellik yapmak, özellikleri istediğiniz gibi doldurmak ve sadece geometri nesnesini NULL olarak ayarlamaktı. Spec okuma benim, bu izin verilen ve standart içinde kalır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.