ข้อดีของการใช้ spatialite มากกว่า shapefile? [ปิด]


35

ฉันพบว่า spatialite มีประโยชน์มากกว่า shapefiles เนื่องจากมันไม่มีข้อ จำกัด ของ shapefile และยังพกพาได้ หลายคนที่นี่ใช้ Shapefiles เพื่อแลกเปลี่ยนข้อมูลและแม้แต่ผู้เชี่ยวชาญไม่ทราบเกี่ยวกับรูปแบบใหม่นี้

อะไรคือข้อดีของการใช้ spatialite ผ่านรูปร่าง?

สามารถใช้แทน shapefile ได้หรือไม่?

โปรดเน้นเฉพาะรูปแบบที่พกพาได้เช่นสามารถแลกเปลี่ยนโดยใช้ USB sticks GML, GeoJSON, KML, CSV ไม่ใช่ตัวเลือกและไม่สามารถแก้ไขได้โดยตรงใน GIS

UPDATE: เป็นเวลามากกว่า 5 ปีแล้วและการพัฒนาใหม่มุ่งเน้นไปที่ geopackage ซึ่งเกี่ยวข้องกับ spatialite

ตอนนี้คำถามเป็นเหมือนข้อดีของการใช้ GEOPACKAGE มากกว่า GEODATABASE?

คำตอบ:


27

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

ข้อดีของ SpatiaLite ได้แก่ :

  • ทุกอย่างในไฟล์เดียว ไม่มี shp / shx / dbf / idx / prj ต่อระเบียบชั้น
  • ตรรกะเช่นเดียวกับข้อมูลสามารถรวมในรูปแบบของมุมมองและ TRIGGERs
  • built-in spatial indices ซึ่งทำให้สามารถค้นหาพื้นที่ขนาดใหญ่ได้อย่างรวดเร็ว
  • เป็นจริง (ถ้ามีข้อ จำกัด เล็กน้อยส่วนใหญ่อยู่ในระบบการเข้าถึงหลายผู้ใช้) โดยไม่จำเป็นต้องมีทักษะการดูแลระบบฐานข้อมูล

แต่มีข้อเสียบางประการ:

  • ทุกคนไม่สามารถใช้พวกเขา
  • พวกเขายังคง จำกัด อยู่กับรูปทรงเรขาคณิตที่สร้างขึ้นจากโหนดและเส้นตรง; หากคุณต้องการเส้นโค้งและพื้นผิวให้ดูที่อื่น

8
โพสต์ที่ดี แต่จุดสองจุดเกี่ยวกับดัชนีเชิงพื้นที่ Shapefiles สามารถสร้างดัชนีปริภูมิได้เช่นกันและอันดับที่สองคุณต้องเข้าร่วมดัชนี Spatialite spatial อย่างชัดเจนซึ่งอาจนำไปสู่การค้นหาที่ไม่สะดวก ฉันยังต้องการย้ายข้อมูลไปรอบ ๆ ในฐานข้อมูล Spatialite แต่นำเข้าลงในฐานข้อมูล PostGIS เพื่อใช้ประโยชน์จากตัววางแผนแบบสอบถามที่มีประสิทธิภาพมากขึ้น
HeyOverThere

22

Shapefiles ถูกผูกไว้กับเรขาคณิตประเภทหนึ่งดังนั้นคุณจะได้รับไฟล์จำนวนมากสำหรับโครงการเดียว ชื่อฟิลด์ถูก จำกัด เช่นกันเนื่องจากการใช้รูปแบบฐานข้อมูลของเก่า

ในเชิงพื้นที่คุณสามารถเก็บข้อมูลโครงการทั้งหมดไว้ในไฟล์เดียว และตั้งชื่อฟิลด์ตามที่คุณต้องการ (ดีเกือบ)

ข้อเสียเพียงอย่างเดียวของ spatialite คือรอบการอัปเดตที่รวดเร็วทำให้เป็นการยากที่จะอ่านหรือเขียนข้อมูลที่เขียนในเวอร์ชันอื่น (เก่ากว่า)


15

นอกเหนือจากการตอบโจทย์แล้ว Shapefiles ยังมีข้อ จำกัด :

  • ความยาวชื่อฟิลด์สูงสุดคือ 10 อักขระ
  • ขนาดไฟล์สูงสุด (.dbf / .shp) คือ 2GB
  • แอ็ตทริบิวต์ตัวเลขจะถูกเก็บเป็นอักขระ (จำนวนเต็ม / จำนวนเต็ม) ทำให้เกิดปัญหาที่อาจเกิดขึ้นกับการปัดเศษเป็นต้น
  • ค่า NULL ถูกตีความแตกต่างกันระหว่างระบบ

4

ข้อได้เปรียบที่สำคัญที่สุดสำหรับฉันคือระบบฐานข้อมูลเชิงสัมพันธ์ในรูปแบบไฟล์เดียว ประโยชน์หลายประการคือการใช้ฟังก์ชั่นเชิงพื้นที่เพื่อสร้างมุมมอง พิจารณากรณีที่คุณได้รับชุดของคะแนนและวิธีการของคุณคือการบัฟเฟอร์จุดฐานในแอตทริบิวต์และจากนั้นทดสอบความบังเอิญของบัฟเฟอร์เหล่านั้นด้วยคุณลักษณะทางภูมิศาสตร์อื่น ๆ การใช้เวิร์กโฟลว์นี้กับ shapefiles มักจะต้องการให้แต่ละการดำเนินการคงอยู่เป็น shapefile อื่น ตอนนี้หากข้อมูลใด ๆ ที่คุณได้รับมีการอัพเดทคุณจะต้องเรียกใช้ทั้งเชน ไม่พูดถึงว่าในบางสภาพแวดล้อมข้อมูลการป้อนข้อมูลอาจมีการเปลี่ยนแปลงที่คุณไม่รู้จัก นี่ไม่ใช่ปัญหาเมื่อคุณใช้มุมมอง SQL สำหรับการดำเนินการทางเรขาคณิต (ฉันรู้ว่ามีเครื่องมือที่จัดการปัญหานี้กับ shapefiles ได้ แต่คำถามเกี่ยวกับฐานข้อมูล spatiaLite)


2

ทุกสิ่งที่อยู่ในไฟล์เดียวก็เป็นข้อเสียเช่นกัน: แก้ไขได้ยากกว่าถ้ามีอะไรบางอย่างเสีย ขนาดของไฟล์เช่นกันดูเหมือนว่าจะเริ่มต้นที่ 3.7 MB แม้ว่าจะเป็นชุดข้อมูลที่ว่างเปล่าก็ตาม พวกเขาดูเหมือนจะสนับสนุนเฉพาะฟิลด์ข้อความจำนวนเต็มและลอย ไม่มีวันที่ / เวลาหรือฟิลด์บูลีน อย่างน้อยเมื่อทำการทดสอบใน QGIS 1.8


1
Spatialite ไม่ได้ประเภทวัน / เวลาตราบเท่าที่มันมีประเภทอะไร: วันและเวลาประเภทข้อมูล
scruss

2
"SQLite ไม่มีคลาสหน่วยเก็บข้อมูลสำหรับการจัดเก็บวันที่และ / หรือเวลา" ที่ยกมาจากหน้าที่คุณลิงก์ไป ใช่มันเป็นไปได้ที่จะเก็บอะไรไว้ในช่องข้อความ แต่มันก็เป็นเพียงแค่ข้อความที่ต้องได้รับการแยกวิเคราะห์ก่อนที่คุณจะสามารถทำคณิตศาสตร์กับมัน
Uffe Kousgaard

ไม่คุณทำไม่ได้; คุณสามารถทำเคียวรีเช่นselect * where date < '1980-01-01'นั้นและทำคณิตศาสตร์ให้คุณ
scruss

ซึ่งหมายถึงข้อความที่ได้รับการแยกวิเคราะห์ ทางเลือกคือวันที่จะถูกเก็บไว้เป็นหมายเลขที่เครื่องยนต์เข้าใจโดยตรง โดยไม่มีความเสี่ยงใด ๆ ที่คุณพบในวันที่ 31 เมษายนหรือค่าผิดกฎหมายอื่น ๆ จะต้องมีการแปลข้อความเป็นตัวเลขก่อนที่จะสามารถใช้โอเปอเรเตอร์ <
Uffe Kousgaard

1
@UffeKousgaard: ในไฟล์. dbf, ตัวเลข (จำนวนเต็ม / จำนวนเต็ม) และชุดข้อมูลตามที่จัดเก็บเป็นอักขระดังนั้นในกรณีที่มีการแยกวิเคราะห์แล้ว Shapefiles จะไม่มีประโยชน์อะไรเลย
Oyvind
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.