ค้นหาคำแนะนำเกี่ยวกับแผนการทำงานแพ็คเกจโอเพนซอร์สทั่วไปหรือไม่ [ปิด]


17

ฉันแค่ต้องการขอคำแนะนำจากผู้เชี่ยวชาญด้าน GIS โอเพ่นซอร์สบนสแต็กที่แนะนำเพื่อใช้สำหรับโครงการที่คาดการณ์ไว้เนื่องจากฉันไม่เข้าใจข้อ จำกัด ของแพ็คเกจส่วนใหญ่อย่างเต็มที่ ฉันรู้ว่าฉันสามารถทำสิ่งที่ฉันต้องการโดยใช้แพ็คเกจต่าง ๆ ของ ESRI แต่ฉันต้องการถูกกว่าและเปิดให้คนทั่วโลกมองเห็น ฉันมั่นใจว่าฉันสามารถรับมือกับความท้าทายใด ๆ และเรียนรู้สิ่งต่าง ๆ ได้ดีพอที่จะทำให้โครงการเกิดขึ้นฉันแค่ต้องการหลีกเลี่ยงเส้นทางที่ผิดตั้งแต่แรก

วิสัยทัศน์ของเว็บไซต์ของฉัน: ในแง่ของ UI เว็บไซต์ที่ไม่ใช่ GIS! มีอะไรเพิ่มเติมตามสายของwhereis.com ที่มีทุกสิ่ง (หรือเกือบทุกอย่าง) ที่ทำในกล่องที่วางตัวอยู่เหนือแผนที่ฐาน ข้อมูลเฉพาะไม่สำคัญในตอนนี้เพียงแค่เน้นไม่มีเลเยอร์ GIS พร้อมช่องทำเครื่องหมายในบานหน้าต่างแยกต่างหากเป็นต้นในแง่ของการโต้ตอบกับผู้ใช้ผู้ใช้ที่ลงทะเบียนสามารถสร้างคุณสมบัติ (เช่นสถานที่ดื่มน้ำพุทางเดิน ฯลฯ ) ด้านบนของฐาน แผนที่และแก้ไขคุณสมบัติของตัวเอง หากเป็นไปได้ให้แก้ไขคุณลักษณะเฉพาะของตนเองที่สร้างขึ้นเท่านั้น แผนที่ความร่วมมือจริง ๆ

ฉันยังคงอยู่ในโหมดการวิจัยเป็นส่วนใหญ่เล่นกับแพ็คเกจต่างๆ แต่เพื่อความคุ้นเคยทั่วไปและไม่ใช่การทดสอบจริง (ซึ่งจะต้องเรียนรู้ในรายละเอียดก่อน!) PostGIS ดูเหมือนจะเป็นวิธีที่ถูกต้องที่จะไปเป็นฐานข้อมูลพื้นฐานโดยที่ Geoserver / Mapserver เป็นตัวกลางที่เป็นไปได้มากที่สุด Openlayers เกือบจะเป็นแผนที่ที่ลื่นไหลอย่างแน่นอนเพราะฉันคุ้นเคยกับมันแล้วและรู้ถึงพลังของมัน

ดังนั้นสิ่งที่ทำให้ฉันถึงสองประเด็นหลักที่ต้องการคำแนะนำจำนวนมาก:

1) UI ชั้นบนสุดที่ดีที่สุดสำหรับไซต์เช่นนี้คืออะไร

มันเป็นอินสแตนซ์ที่กำหนดเองของ Django (หรือแม้แต่ Django-CMS) หรือเป็นอินสแตนซ์ของ GeoExt หรือไลบรารีอื่น ๆ ร่วมกัน (ไม่แน่ใจว่าคุณสามารถทำการล็อกอิน / ลงทะเบียน / UI แบบเต็มด้วย), CMS / กรอบอื่น ๆ ( ไม่ไม่ใช่ drupal หรืออะไรก็ตามที่ จำกัด !) หรืออะไรที่ต่างออกไปโดยสิ้นเชิง?

2) เป็นไปได้ไหมที่จะมีผู้ใช้งานไซต์ที่ลงทะเบียนแก้ไขคุณสมบัติของตัวเอง?

ฉันต้องการหลีกเลี่ยงสถานที่“ กราฟฟิตี” จำนวนมากเช่น OSM และประสบการณ์การทำงานร่วมกันอื่น ๆ ดูเหมือนว่าจากการอ่านและคำแนะนำของฉันก่อนหน้านี้ที่ Geoserver ไม่สามารถมีการตรวจสอบผู้ใช้ระดับคุณลักษณะ

Mapserver สามารถ?

ฉันไม่รู้ด้วยซ้ำว่าประชากรผู้ใช้ของไซต์ (จาก CMS หรือเฟรมเวิร์ก) สามารถเชื่อมโยงโดยตรงไปยัง geoserver / mapserver ได้หรือไม่

หากแนวคิดดังกล่าวเป็นไปไม่ได้ด้วยโซลูชั่นโอเพนซอร์สมีวิธีอื่นในการบรรลุเป้าหมายนั้นหรือไม่?

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

ประเภทของการสูญเสียในการบรรลุเจตนานี้

และใช่ฉันดูที่ GeoNode ด้วย แต่ฉันต้องการเพียงแผนที่เดียวเท่านั้น (ทำให้มันง่าย) และ UI นั้นก็ไม่ได้มีการโต้ตอบเพียงพอ (ก่อนเข้าสู่ GeoExplorer) หรือเหมือน GIS ใน GeoExplorer ดูเหมือนว่าวิธีการแก้ปัญหากระป๋องเกินไปสำหรับโครงการนี้

ขออภัยที่จะเปิดให้บริการสิ้นสุดที่นี่และคลุมเครือ แต่ฉันหวังว่าจะสามารถเริ่มต้นเส้นทางที่เป็นไปได้และไม่วิ่งเข้าไปในกำแพงหลายเดือนต่อจากนี้เพียงแค่ต้องเริ่มต้นใหม่อีกครั้งเพราะเส้นทาง # 1 ไม่เคยมีฟังก์ชั่นนั้นมาตั้งแต่เริ่มต้น!

หนึ่งในตัวอย่างที่ดีที่สุดที่ฉันพบคือhttp://www.gpsies.com ฉันรู้ว่านี่ใช้ใบปลิว แต่ไม่แน่ใจว่ากรอบและฐานข้อมูลพื้นฐาน ผู้ใช้สามารถสร้าง / อัพโหลดคุณสมบัติของตนเอง แต่ไม่สามารถแก้ไขอื่น ๆ ได้


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

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

คำตอบ:


8

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

Django (กับGeoDjango ) ค่อนข้างดีสำหรับเรื่องนี้เป็นกรอบพื้นฐานสำหรับ python (อีกครั้งถ้านั่นคือสิ่งที่คุณทำคุณสามารถทำได้ในภาษาอื่น)

แนวทางของฉันสำหรับการแก้ไขในระดับผู้ใช้นั้นคล้ายกับที่อธิบายไว้ของ CaptDragon ฉันใช้เฟรมเวิร์กการพิสูจน์ตัวตน django สำหรับโครงการนี้ API ของฉันถูกสร้างขึ้นโดยใช้Tasty Pie ของ Djangoซึ่งมีเฟรมเวิร์กที่อนุญาตให้คุณสร้าง RESTful API ที่เหมาะสมพร้อมกับการรับรองความถูกต้องในการพิจารณาได้อย่างง่ายดาย

ฉัน MapServer (หรือ Geoserver หรือสิ่งที่คุณเลือกที่จะใช้งาน) ที่ไม่เคยสัมผัสโดยตรงกับโลกภายนอก (เฉพาะเซิร์ฟเวอร์ในท้องถิ่นที่มีการเข้าถึงเหล่านั้น) ... กระเบื้องทั้งหมดได้รับบริการจากการใช้เซิร์ฟเวอร์กระเบื้อง ( geowebcache , tilecache , tilestacheสิ่งที่ )

ฉันไม่จำเป็นต้องพูดถึง Openlayers เนื่องจากคุณเลือกมาแล้ว ทางเลือกที่ดี.

PostgreSQL / PostGIS เป็นเกมง่ายๆ :)

ในฐานะห้องสมุด javascript คุณจะไม่มีทางผิดพลาดกับ jQuery ถ้าคุณจะไม่อนุญาตให้มีการแก้ไขหลายคุณอาจได้รับประโยชน์จากการมีบางส่วนโครงสร้างของจาวาสคริปต์ของวัตถุที่ใช้บางอย่างเช่น Backbone.js เอาอันนี้กับเม็ดเกลือ บางคนชอบมัน - คนอื่นเกลียดมัน

หากคุณไม่ต้องการให้เว็บไซต์ของคุณดูน่าเกลียดทำตัวเองชอบและใช้ css framework เช่นBootstrapหรือCompassหรือทางเลือกสำหรับราคา $ 20 เพียงซื้อจากพวกเขาหรือตัดคำ (ถ้าคุณกำลังจะเปิดแหล่งที่มาคุณอาจ ต้องการดูใบอนุญาตหากคุณกำลังจะซื้อมัน) การเชื่อมโยงสิ่งเหล่านี้เข้าด้วยกันจะใช้เวลาประมาณหนึ่งวันและสร้างความแตกต่างอย่างมากกับลักษณะของเว็บไซต์ของคุณ!

โดยส่วนตัวแล้วฉันได้ดู Django-cms (และPinax ) หลายครั้งและฉันไม่สามารถโน้มน้าวตัวเองว่ามันคุ้มค่ากับปัญหา ฉันไม่เคยรู้สึกเสียใจกับการตัดสินใจครั้งนี้

เนื่องจากคุณกำลังรวบรวมโครงการที่จะต้องมีรุ่นต่างๆของสคี (ของคุณมากกว่าที่คุณจะพัฒนามากขึ้นก็จะมีการเปลี่ยนแปลง) เพียงใช้ทางทิศใต้ อย่าลังเลเลยแม้แต่น้อย! อย่างจริงจัง.

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


ขอบคุณสำหรับข้อมูลที่ดีพร้อมกับคนอื่น ๆ สิ่งนี้จะช่วยให้โฟกัสของฉันแคบลงเมื่อฉันก้าวไปข้างหน้า
Jeremy

Bootstrap ดูยอดเยี่ยม คุณช่วยชี้ให้เราไปที่ไซต์ทำแผนที่ตัวอย่างที่ใช้งานได้หรือไม่
สตีเฟนนำ

6

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

ที่เซิร์ฟเวอร์:

  • เซิร์ฟเวอร์ Ubuntu + เว็บเซิร์ฟเวอร์ Apache + Apache Tomcat
  • Postgresql + postgis เป็นฐานข้อมูล
  • Geoserver (ในกรณีของฉันฉันใช้เพื่อ rasters เท่านั้น)
  • Django Framework + Tastypie Tastypie ให้บริการเวกเตอร์ทั้งหมดผ่าน API และผู้ใช้มีสิทธิ์ 'ต่อวัตถุ'
  • python-gsconfig เพื่อควบคุม geoserver จาก python
  • แจสเปอร์รายงานเพื่อสร้างไฟล์ PDF
  • pyjasper เพื่อควบคุมรายงาน jasper จาก python
  • ห้องสมุดธรณีศาสตร์ประสิทธิภาพสูงสำหรับการแก้ไข

ที่ลูกค้า:

  • ExtJs 4 -> ยอดเยี่ยมมาก Extjs ทำงานได้ดีมากกับ Deliciouspie และคุณมีหลายสิ่งหลายอย่างที่ออกนอกกรอบเช่นหน้าต่างและโต๊ะ ฉันเริ่มใช้มันในรหัสบริสุทธิ์ แต่ฉันใช้ Sencha Architect 2 ซึ่งช่วยได้มาก
  • OpenLayers -> ด้วยสองวิธีที่แทรกหนึ่งวิธีในร้าน extjs และอีกวิธีหนึ่งในเลเยอร์ openlayers คุณจะต้องอัปเดตซึ่งกันและกันเมื่อมีการเปลี่ยนแปลงข้อมูล

ฉันจะทำการค้นคว้าตัวเลือก Deliciouspie อย่างแน่นอนดูมีแนวโน้ม มีประโยชน์มาก!
Jeremy

4

เป็นไปได้ไหมที่ผู้ใช้ไซต์ที่ลงทะเบียนจะแก้ไขคุณสมบัติของตัวเอง?

ดูเหมือนว่าสิ่งนี้เป็นไปได้โดยใช้Cartaro มันขึ้นอยู่กับ Drupal (ฉันรู้ว่าคุณไม่ได้พูดอะไรอย่าง จำกัด Drupal แต่ฟังฉันออกมา!) และมันช่วยให้ผู้ใช้สามารถแก้ไขคุณสมบัติของตัวเองได้เท่านั้นรวมถึงตัวเลือกอื่น ๆ นี่คือภาพหน้าจอที่นำมาจากหน้าบุคคลเมื่อเข้าสู่ระบบในฐานะผู้ดูแลระบบซึ่งแสดงประเภทของการอนุญาตที่สามารถตั้งค่าสำหรับผู้ใช้:

สิทธิ์ของ Cartaro

นอกจากนี้ Cartaro ยังทำงานบน PostGIS, GeoServer และ OpenLayers ดังนั้นจึงอาจมีทุกอย่างที่คุณต้องการ

UI ชั้นบนสุดที่ดีที่สุดสำหรับเว็บไซต์เช่นนี้คืออะไร

ฉันไม่ทราบว่าเลเยอร์บนสุด "ดีที่สุด" คืออะไร แต่ดูเหมือนว่า Cartaro สามารถให้สิ่งที่คุณต้องการได้เนื่องจาก Drupal มีตัวเลือก UI มากมาย ดูเหมือนว่า Cartaro กำลังอยู่ในช่วงพัฒนา (ฉันไม่รู้เป็นการส่วนตัวเกี่ยวกับผู้ที่ใช้งาน) แต่มันมีศักยภาพ


1
ฉันซาบซึ้งข้อมูลฉันไม่รู้ว่า Cartaro มีความสามารถนั้น สำหรับตอนนี้ฉันจะใช้โมเดลพื้นฐานที่คนอื่นพูดถึง (อย่างน้อยจากมุมมองการวิจัย / การเรียนรู้) แต่ฉันอาจมองลึกเข้าไปใน CMS นี้เล็กน้อย ฉันให้เวลาประมาณหนึ่งชั่วโมงในช่วงสองสามเดือนก่อนและไม่ค่อยประทับใจเท่าไหร่ในตอนแรก แต่เพื่อความเป็นธรรมฉันไม่ได้ให้โอกาสมากในเวลานั้น
Jeremy

3

ฉันจะตอบคำถาม # 2 นี่คือวิธีที่ฉันแก้ไขปัญหาการอนุญาตให้ผู้ใช้แก้ไขบันทึกของตนเอง

ฉันสร้างบริการเว็บของฉันเอง RESTFUL หรือ SOAP (ตัวเลือกของคุณ) เช่นUpdateUserRecord(string WKTLocation, string otherArg)ที่ผูกติดกับกลไกการตรวจสอบสิทธิ์ของเว็บไซต์ของคุณ

OpenLayers และ PostGIS ทั้งอ่านและเขียน Well-Known-Text (WKT) เช่นเดียวกับ GML และรูปแบบมาตรฐานอื่น ๆ แต่ส่วนตัวแล้วฉันใช้ WKT ในการส่งผ่านข้อมูลรูปทรงเรขาคณิตจากแอปพลิเคชันของฉันผ่านเว็บเซอร์วิสและ PostGIS DB

นอกจากนี้วิธีการทางเว็บของฉันเช่นUpdateUserRecordสามารถถูกเรียกโดยผู้ใช้เซสชั่นรับรองความถูกต้อง A 401 Unauthorizedจะถูกส่งคืนหากมีคนอื่นพยายามโทรหาบริการเว็บนี้ ในกรณีของฉันฉันใช้. NET และ FormsAuthentication ด้วยตัวเลือกการรับรองความถูกต้องโดยใช้ OpenAuth2 (Google, Facebook, Twitter, ฯลฯ ) สิ่งนี้สามารถทำได้ใน PHP, Java, ฯลฯ

ดังนั้นคุณสามารถสร้างวิธีการทางเว็บที่เรียกฐานข้อมูล PostGIS โดยตรงและอัปเดตหรือแทรกบันทึกตามที่คุณต้องการ และนั่นคือสิ่งที่ฉันทำ

จากนั้นฉันก็ใช้ GeoServer สำหรับ WFS ความสามารถในการสืบค้น WMS และความสะดวกในการแสดงข้อมูลบนแผนที่ที่ฉันจะให้ UserID ถ้าแบบสอบถามเรียกมัน

หวังว่านี่จะช่วยได้


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