มันถูกต้องหรือไม่ที่จะมีองค์ประกอบคุณสมบัติใน geoJSON FeatureCollection


16

มันถูกต้องหรือไม่ที่จะมีองค์ประกอบคุณสมบัติที่มี featureCollection-element เป็นผู้ปกครอง?

นี่คือตาม geojson.org ที่ถูกต้อง:

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

แต่ฉันไม่พบว่ามันถูกต้องหรือไม่ถูกต้องหากมีสิ่งนี้:

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

ตามคำตอบข้างล่างมันไม่ถูกต้องที่จะใส่มันไว้ แต่โปรแกรม / สคริปต์จะไม่รู้จักมัน

ดังนั้นฉันขอใช้ถ้อยคำใหม่คำถาม: (ที่ไหน) เป็นไปได้หรือไม่ที่จะนำข้อมูลเชิงอธิบายเกี่ยวกับคุณสมบัตินั้นมารวม?

คำตอบ:


10

2.3 วัตถุรวบรวมคุณสมบัติ

วัตถุ GeoJSON ที่มีประเภท "FeatureCollection" เป็นวัตถุที่รวบรวมคุณสมบัติ

วัตถุประเภท "FeatureCollection" ต้องมีสมาชิกที่มีชื่อ "คุณสมบัติ" ค่าที่สอดคล้องกับ "คุณสมบัติ" คืออาร์เรย์ องค์ประกอบในอาร์เรย์แต่ละรายการเป็นวัตถุคุณลักษณะตามที่กำหนดไว้ด้านบน

ฉันคิดว่านี่ชัดเจนหมายความว่าหากวัตถุมีสมาชิกเพิ่มเติมที่ไม่ทำให้มันไม่ถูกต้อง

วัตถุ Ecmascript เปิดกว้างมาก

ใช่คุณสามารถมีองค์ประกอบคุณสมบัติที่ระดับบนสุดของคอลเลกชันคุณสมบัติ แต่อย่าคาดหวังว่าเครื่องมือใด ๆ ที่จะรู้ว่ามีหรือคัดลอก ...


1
ตกลงพอแล้ว :) แต่สถานที่ในการจัดเก็บข้อมูลเกี่ยวกับคอลเลกชันของตัวเองแทนที่จะเป็นคุณสมบัติคืออะไร?
stUrb

ไม่มีหนึ่งในข้อมูลจำเพาะ
Calvin

เนื่องจาก FeatureCollection เป็นวัตถุชั้นหนึ่งคุณสมบัติใด ๆ ที่จะเกี่ยวกับการรวบรวมไม่ใช่คุณลักษณะใด ๆ เพิ่มได้มากเท่าที่คุณต้องการหรือเพิ่มคุณสมบัติ "ข้อมูลเมตา" ที่มีค่าเป็นแผนที่
Julian

อีกวิธีหนึ่งในการคิดเกี่ยวกับมันคือคุณต้อง FeatureCollection ย่อยสำหรับความต้องการของคุณ นั่นเป็นคำเปรียบเทียบจริงๆแทนที่จะเขียนโปรแกรมที่นี่เพราะ ECMAscript ไม่ได้คิดถึงวัตถุในแบบนั้น
Julian

1
ข้อมูลจำเพาะอนุญาตให้สมาชิกต่างประเทศในส่วน 6.1 tools.ietf.org/html/draft-ietf-geojson-03#section-6 ดังนั้นจึงเป็นเรื่องถูกกฎหมาย แต่พฤติกรรมจะขึ้นอยู่กับแอปพลิเคชัน
intotecho

9

คำตอบสั้น ๆ คือไม่ - มันไม่ถูกต้องที่จะมีpropertiesองค์ประกอบบนFeatureCollectionวัตถุ:

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

สมาชิก GeoJSON "เรขาคณิต" และ "คุณสมบัติ" กำหนดวัตถุคุณลักษณะ FeatureCollection และวัตถุรูปทรงเรขาคณิตตามลำดับต้องไม่มีสมาชิก "เรขาคณิต" หรือ "คุณสมบัติ"


จากการอ่านของฉันถ้อยคำในเอกสารนี้ที่คุณไม่สามารถตั้งชื่อเป็นสมาชิกของ FeatureCollection "properties"เช่น OP ไม่ แต่มันก็ไม่ได้หมายความว่าคุณจากการเรียกร้องบางสิ่งบางอย่างมันอื่นเหมือนหรือ"metadata" "description"ฉันใช้สมาชิกระดับสูงสุดหลายคนในเว็บแผนที่ที่พึ่งพา geojson การปรับปรุงดี @Niel
nronnei

1

ฉันก็คิดว่า 'คุณสมบัติ' ระดับสูงสุดจะเป็นประโยชน์หนึ่งในระดับการรวบรวมคุณลักษณะ

แต่สิ่งที่ฉันทำก็คือการสร้างฟีเจอร์เพิ่มเติมสำหรับการรวบรวมฟีเจอร์การเติมคุณสมบัติตามที่ต้องการและเพียงแค่ตั้งค่าวัตถุทางเรขาคณิตเป็น NULL จากการอ่านข้อมูลจำเพาะของฉันดูเหมือนว่าจะได้รับอนุญาตและอยู่ในมาตรฐาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.