นี่คือหัวข้อที่เกิดขึ้นเสมอ ผมอาจจะไม่ได้คำตอบที่ถูกต้อง แต่ฉันจะให้คุณส่วนบุคคลของฉันความคิดเห็น
เหตุผลที่พวกเขาได้รับการสนับสนุนสามารถนำมาประกอบกับคุณสมบัติหลายประการเกี่ยวกับพวกเขาดังนั้นให้ฉันพูดถึงไม่กี่
ก่อนอื่นมีสเป็คอยู่ ฉันหมายถึงฉันอยู่ในวัยสามสิบต้น ๆ และสิ่งนี้มีอยู่ตั้งแต่ฉันเป็นวัยรุ่น ดังนั้นจึงปลอดภัยที่จะบอกว่าสเป็คนี้มีมานานแล้ว แน่นอนว่ายังมีรูปแบบอื่น ๆ อีกมากมายที่ได้รับการตีพิมพ์ แต่ความแตกต่างของรูปแบบนี้ก็คือ ...
มันค่อนข้างง่าย! มันถูกสร้างขึ้นบนรูปแบบ DBFซึ่งในเวลานั้นมีอยู่แล้วและได้รับการสนับสนุนอย่างกว้างขวางในหลายแพลตฟอร์ม / ระบบปฏิบัติการ มีตัวแยกวิเคราะห์ที่สามารถอ่านครึ่งหนึ่งของรูปแบบนี้ (ส่วน DBF) ดังนั้นจึงทำให้การสนับสนุนการเพิ่มพิเศษง่ายขึ้น คุณมีรูปทรงเรขาคณิตหรือไม่? แน่ใจว่าเป็นอันดับมันและเขียน คุณทำเสร็จแล้ว ตัดกันด้วยความครอบคลุม ! ลองอธิบายให้ใครสักคนฟังง่ายๆว่าโทโพโลยีที่สะอาดทำอะไร มันไม่สำคัญที่จะเขียนความคุ้มครองทอพอโลยีที่สะอาด
สิ่งสำคัญที่สุดคือผมคิดว่าเหตุผล # 1 สำหรับ shapefiles ยังคงได้รับความนิยมเป็นว่าพวกเขาได้รับการสนับสนุนทั้งในโอเพนซอร์สและระบบกรรมสิทธิ์เหมือนกัน คุณรู้อะไร GIS ที่ไม่สนับสนุน shapefiles?!? ไม่เคยได้ยินจาก
แทนเราได้ยินเสียงของGeoDatabases ไฟล์และSpatialite ทั้งสองรูปแบบนั้นเหนือกว่าอย่างมากในแง่ของฟังก์ชั่นความยืดหยุ่นความเร็ว ฯลฯ เมื่อเปรียบเทียบกับ Shapefiles ในทางของตัวเองพวกเขามีบางสิ่งที่ทำให้พวกเขาดีกว่ากันในด้านต่าง ๆ แต่การเปรียบเทียบ spatialite และ FileGDB นั้นอยู่นอกขอบเขตของคำถามนี้อย่างแน่นอน
ฉันคิดว่ารูปแบบใดรูปแบบหนึ่งนี้จะแทนที่ Shapefiles หรือไม่ ไม่ได้อยู่ในสาขาปัจจุบันของพวกเขา
ทำไม?
ไม่ใช่เพราะการโต้แย้งทางเทคโนโลยี (ฉันบอกว่ามันยอดเยี่ยมกว่าในแง่นั้น) แต่เป็นเพราะอย่างอื่น: การออกใบอนุญาต
แล้วปัญหาของพวกเขาคืออะไร?
FileGDB :
FileGDB ให้การทำงานร่วมกันผ่าน FileGDB API ใหม่ อย่างไรก็ตาม API นี้มีให้ในรูปแบบไบนารีโดย ESRI นี่ไม่ใช่สเปค ก่อนหน้านี้เคยทำงานกับทีม GeoDatabase ฉันสามารถบอกคุณได้ว่าตรงกันข้ามกับนักทฤษฎีสมคบคิดสวมใส่ฟอยล์ที่สวมหมวกซึ่งไม่เป็นอันตรายเลย เป็นเพราะภายในของการเปลี่ยนแปลงฐานข้อมูล GeoDatabase ในทุกรุ่น การเผยแพร่สเป็คเต็มรูปแบบจะนำมาซึ่งโดยทั่วไปให้รายละเอียดทั้งหมดของวิธีการที่ทุกอย่างควรได้รับการบำรุงรักษาและจากนั้นทำการบันทึกการเปลี่ยนแปลงรูปแบบด้วยการปล่อยทุก ๆ ปีอย่างระมัดระวัง มันไม่สมเหตุสมผล ดังนั้น FileGDB API ถึงแม้ว่ามันจะไม่ใช่สเป็ค แต่มันก็สรุปการเปลี่ยนแปลงเล็กน้อยทั้งหมดเหล่านั้น และตอนนี้ก็สามารถใช้ข้ามแพลตฟอร์มได้! ใจคุณนี่เป็นก้าวที่ยิ่งใหญ่! เมื่อพิจารณาถึงลักษณะอนุรักษ์นิยมของ ESRI นี่เป็นปฏิกิริยาที่แน่นอนในทิศทางที่ถูกต้อง
และถึงกระนั้นการสนับสนุนแบบไบนารีเท่านั้นก็ไม่ได้ทำให้ใครในโลกโอเพนซอร์สมีความสุขเกินไป จากนั้นคุณจะใช้ประโยชน์จากการย้ายรหัสเพื่อพูดถึงรสชาติอื่น ๆ ของ Linux ได้อย่างไรถ้า ESRI ไม่รองรับ คุณทำไม่ได้ นี่คือสิ่งที่ทำให้โอเพ่นซอร์สมีประสิทธิภาพและตอนนี้คุณไม่สามารถใช้ประโยชน์จากสิ่งนี้ได้ ถ้า ESRI ตัดสินใจหยุดสนับสนุนเดเบียนนั่นแหละ คุณทำเสร็จแล้ว และไม่มีอะไรที่คุณสามารถทำได้เพื่อเปลี่ยนแปลงมัน
Spatialite :
Spatialite จะน่ากลัวเพราะได้รับทุกฟังก์ชั่นได้ฟรีจากSQLite SQLite ถูกใช้ทุกที่ มันอยู่บนโทรศัพท์ Android ของคุณบน iPhone / iPad ของคุณบน Firefox บน Google Chrome บนอุปกรณ์ฝังตัวเชิงพาณิชย์หลายแห่ง - สามารถใช้งานได้ตลอดไป อย่างแท้จริงทำให้มันเป็น Geoformat (และไม่เพียง แต่จะดำเนินการกรอบใบ้) ก็ต้องใช้ประโยชน์จากห้องสมุดเรขาคณิตเดียวกันกับที่ใช้ PostGIS: GEOS น่าเศร้าที่ GEOS จะขึ้นอยู่กับอีกน่ากลัวมากขึ้นห้องสมุดเรขาคณิตที่รู้จักในฐานะเจทีเอส อัลกอริธึมทั้งหมดใน JTS นั้นมีประสิทธิภาพอย่างมากดังนั้นปัญหาคืออะไร
ดีเจทีเอสได้รับใบอนุญาตเป็น Open Source แอลจีและแอลจีเป็นใบอนุญาตไวรัส JTS คือ LGPL หมายถึง GEOS คือ LGPL หมายถึงการเชื่อมโยงเชิงพื้นที่กับ GEOSคือ LGPL อันนี้ครับ ทำไม? โดยไม่ต้องอธิบายสิทธิ์ใช้งานโอเพ่นซอร์สมากเกินไปฉันสามารถบอกคุณได้ว่าตัวอย่างเช่นฉันไม่สามารถใช้ spatialite บนพูดแอป iPhone เพราะจะทำให้แอปทั้งหมดของฉันเปิดอัตโนมัติ (iOS อนุญาตการลิงก์แบบสแตติกเท่านั้น) ใบอนุญาต GPL ประเภทใดก็ได้ (พอสมควร) ทำให้ตกใจออกมาจาก ESRI และพวกเขาจะไม่สัมผัสกับเสา 10 ฟุต ดังนั้น ArcGIS ซึ่งเป็นระบบ GIS ที่ได้รับความนิยมมากที่สุดในโลกไม่สนับสนุนและไม่สนับสนุนระบบอวกาศ นี่จะฆ่ามันเป็นรูปแบบที่ทำงานได้โดยอัตโนมัติ
ดังนั้นเราจึงกลับไปที่รูปแบบเส็งเคร็งที่ได้รับการสนับสนุนทุกที่
อัปเดต :
เห็นได้ชัดว่าคำตอบของฉันเป็นที่ถกเถียงกันมากพอที่ใครบางคนตัดสินใจว่ามันก็โอเคที่จะแก้ไขและเปลี่ยนแปลงความหมายทั้งหมดของคำตอบของฉันเพื่อให้มุมมองของพวกเขา โปรดอย่าทำอย่างนั้น หากคุณไม่เห็นด้วยกับฉันนั่นเป็นเรื่องที่ดีเพียงโพสต์ความคิดเห็นของคุณในคำตอบที่ต่างออกไปและให้ชุมชนตัดสินใจ ฉันย้อนกลับการแก้ไขคำตอบของฉันเพื่อแสดงความหมายดั้งเดิม ฉันกำลังเพิ่มการอัปเดตนี้ในกรณีที่คุณอ่านคำตอบที่แก้ไขแล้วซึ่งอ้างว่า sqlite เป็นรูปแบบที่ใช้งานได้