ชุดทักษะการพัฒนา Web GIS [ปิด]


12

เทคโนโลยีและชุดทักษะใดที่ผู้ที่ต้องการศึกษา / ได้รับการพัฒนาเว็บ GIS ควรทำอย่างไร

โปรดหนึ่งทักษะ / เทคโนโลยีต่อคำตอบ


4
พูดคุยเกี่ยวกับคำถามทั่วไป ... คุณช่วย จำกัด ให้แคบลงเป็นซอฟต์แวร์เฉพาะได้ไหม Esri? ฟอสส์? เพียงแค่ต้องการทำข้อมูลผสมของ Google / จุด?
Derek Swingley

ความผิดฉันเอง. ESRI หรือ FOSS เป็นไปไม่ได้ที่จะมีทั้งคู่หรือไม่? สิ่งที่ซับซ้อนยิ่งกว่าการผสมจุดฉันหวังว่า ทักษะเพียงพอที่จะทำอะไรเช่นนี้ opengeohost.com/maps/stlawrence
RK

1
เป็นคำถามที่ดีมาก มามีหนึ่งทักษะต่อคำตอบ
Adam Matan

ขอบคุณ ความคิดที่ดี. ฉันควรโพสต์สิ่งนั้นกับคำถามหรือไม่ ฉันเพิ่งรู้ว่าคำถามอาจกว้าง มันจะดีกว่าไหมในฐานะวิกิชุมชน
RK

ปัญหา simmilar: stackoverflow.com/questions/1054480/…
radek

คำตอบ:


17

ฉันสามารถบอกคุณเกี่ยวกับประสบการณ์ของฉันซึ่งเริ่มต้นเป็นนักภูมิศาสตร์ง่าย ๆ พยายามใช้ผลิตภัณฑ์ GIS เพื่อทำการวิเคราะห์เชิงพื้นที่

อย่างที่ฉันพูดฉันเป็นนักภูมิศาสตร์และจากจุดเริ่มต้นในวิทยาลัยฉันเริ่มทำงานกับ GIS ในฐานะผู้ใช้ หลังจากนั้นฉันเริ่มค้นคว้าเกี่ยวกับวิธีการทำงานที่น่าเบื่อโดยอัตโนมัติที่ฉันต้องทำบ่อยครั้ง นั่นมาจากความหลงใหลและหลังจากสามปีที่ผ่านมาฉันทำงานโดย บริษัท ซอฟต์แวร์ข้ามชาติที่ทำงานกับระบบ GIS จำนวนมากและพัฒนาโซลูชันที่กำหนดเอง

ขั้นตอนของฉันคือ:

  • เรียนรู้ GIS เป็นอย่างดี อย่าเริ่มต้นการเรียนรู้การเขียนโปรแกรมโดยไม่ต้องมีพื้นฐานที่ถูกต้อง การคาดการณ์และการแปลงการวิเคราะห์เชิงพื้นที่ความแตกต่างระหว่างแบบจำลองแรสเตอร์และเวกเตอร์เป็นต้น

  • เรียนรู้พื้นฐานระบบฐานข้อมูล: รู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล , ความรู้พื้นฐานของระบบฐานข้อมูล หนังสือสองเล่มแตกต่างกันเล็กน้อย อย่างแรกคือทฤษฎีที่หนักมากคนที่สองใช้แนวทางที่เป็นประโยชน์มากกว่า

  • เรียนรู้ SQL อันที่จริงนี่เป็นส่วนที่สองของส่วนแรก มันจะช่วยคุณได้มากถ้าคุณเริ่มคิดในลักษณะ "ตาราง" SQL เปลี่ยนจากผู้จัดจำหน่ายเป็นผู้จัดจำหน่าย ฉันสามารถแนะนำคุณกับ PostgreSQL ซึ่งเป็นผู้ขายที่ปฏิบัติตามมาตรฐานมากที่สุด หากคุณต้องการเรียนรู้ภาษาถิ่นที่เฉพาะเจาะจงให้ทำในภายหลังเมื่อคุณต้องการมัน

  • การเขียนโปรแกรมเชิงวัตถุ ดูเหมือนจะเป็นสิ่งที่ท้าทาย แต่มันค่อนข้างง่ายเมื่อคุณเข้าใจพื้นฐาน เลือกภาษาง่าย ๆ ที่จะทำ Python เป็นโปรแกรมที่ง่ายที่สุด การเรียนรู้ Pythonเป็นจุดเริ่มต้นที่ยอดเยี่ยม มีเปิดแหล่งที่มา / หนังสือหลามฟรีเช่นมีดำน้ำในหลาม หลังจาก Python ตัวเลือกที่น่าสนใจคือ:. NET, Java และ C / C ++

  • การเขียนโปรแกรมการศึกษา อ่านรหัสเขียนรหัส อ่านรหัสเชิงพื้นที่ เขียนรหัสทางภูมิศาสตร์ ศึกษา API แบบคลาสสิก: GEOS, JTS, GDAL, ArcObjects (ถ้าคุณเป็นแฟน ESRI - และมันเป็นข้อดีอย่างมากในตลาด) และอื่น ๆ

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

  • หมั่นศึกษาต่อ มาตรฐาน OGC เป็นตัวเลือกที่ดีที่นี่


4

รู้วิธีการของคุณเกี่ยวกับฐานข้อมูล นักพัฒนาระบบสารสนเทศภูมิศาสตร์ใด ๆ จะใช้พวกเขาอย่างกว้างขวาง

สะดุดตาที่สุด:

  • DBMSและสัมพันธ์รุ่น วิชาเหล่านี้มีความสำคัญต่อการทำความเข้าใจพื้นฐานของการจัดเก็บข้อมูล
  • อย่างน้อยหนึ่งGIS แก้ปัญหา ฉันชอบPostGISแต่วิธีการแก้ปัญหาอื่น ๆ ยังมีอยู่
  • ความรู้ที่ดีเกี่ยวกับSQL และ GIS SQL : วิธีการแยกแทรกเรียงลำดับและจัดการข้อมูลอย่างมีประสิทธิภาพ
  • Classic DB trade-offs : การดำเนินการที่แตกต่างกันมีผลต่อการใช้หน่วยความจำ, พื้นที่ดิสก์, CPU และเครือข่ายอย่างไร
  • การจัดทำดัชนี สิ่งนี้มีความสำคัญเพียงพอสำหรับสัญลักษณ์แสดงหัวข้อย่อยแยกต่างหากเพราะ DB Lacuna ที่พบมากที่สุดในหมู่ผู้เริ่มต้น
  • ความรู้บางอย่างเกี่ยวกับการจัดกลุ่มและการปรับขนาดได้
  • ความรู้พื้นฐานของNOSQL

แม้ว่าคุณจะไม่ได้ใช้ฐานข้อมูล แต่คุณก็ยังใช้ข้อมูลอยู่ - และโดยทั่วไปแล้วมันเป็นสิ่งที่ปลอดภัยที่ SQL (หรือลูกพี่ลูกน้องของมัน) จะถูกใช้เพื่อค้นหาข้อมูล
mwalker

ฉันยอมรับว่าทั้งหมดข้างต้นเป็นสิ่งที่ดีที่จะรู้ แต่พวกเขาอยู่ด้านบนของรายการเกี่ยวกับการพัฒนาเว็บ?
Simon

CQL เกี่ยวกับอะไร? จำเป็นหรือไม่
RK

1
@simon - ความสามารถของฐานข้อมูลไม่เพียงพอเป็นหนึ่งในปัญหาที่พบบ่อยที่สุดในหมู่นักพัฒนาระบบสารสนเทศภูมิศาสตร์ IMHO เป็นหนึ่งในทักษะที่สำคัญที่สุด (พร้อมกับ HTML / CSS, JavaScript และการเรนเดอร์แผนที่) @rk - CQL?
Adam Matan

ภาษาของแบบสอบถามทั่วไป ฉันพบมันครั้งเดียวในขณะที่ทำงานกับ GeoServer
RK

3

สมมติว่าคุณมีด้านระบบสารสนเทศภูมิศาสตร์ในสิ่งปกคลุม (หลักการทำแผนที่ ฯลฯ ) ครั้งแรกที่ผมจะใช้เวลาเดินทางไปhttp://www.w3schools.com/ - ทำงานผ่านบทเรียนใน HTML, Javascript, XML, ฯลฯ

จากนั้นคุณมีหลายแพลตฟอร์มให้เลือก ฉันมีอคติเล็กน้อยต่อ ESRI และฉันขอแนะนำให้เริ่มต้นด้วยการเล่นเกี่ยวกับ API http://resources.arcgis.com/content/web/web-apis - การใช้แนวคิด / ตัวอย่างช่วยให้คุณเข้าใจถึงสิ่งที่แท้จริง คุณสามารถบรรลุ
ฉันพบว่าการดาวน์โหลดตัวอย่างโค้ดและวิศวกรรมย้อนกลับเพื่อให้ทำงานกับบริการของคุณเอง (สมมติว่าคุณมีอินสแตนซ์ของ ArcGIS Server ไม่เช่นนั้นคุณสามารถใช้เซิร์ฟเวอร์ตัวอย่าง ESRIs) เป็นวิธีที่ดีในการเรียนรู้

นอกจากนี้ยังมีวิดีโอมากมายลองดูวิดีโอการประชุมนี้หู แนะนำ ID ภาพรวมของ ArcGIS APIs สำหรับ JavaScript แนวทางปฏิบัติที่ดีที่สุดสำหรับการออกแบบบริการแผนที่ที่มีประสิทธิภาพการออกแบบแอปพลิเคชันเดสก์ท็อปสำหรับเว็บและใช้ ArcGIS Server REST API

คุณจะเลือกแพลตฟอร์มเว็บใด id ไม่สนใจการดู WebADF (Java / NET) เนื่องจากจะทำให้เลิกใช้งานได้

ใครคือลูกค้าของคุณ? พวกเขาจะใช้เบราว์เซอร์ใด พวกเขาสามารถติดตั้งปลั๊กอิน Silverlight หรือแฟลชได้หรือไม่? คุณมี IDEs ที่จะพัฒนาหรือไม่? เช่น Flex ดีที่สุดใน FlashBuilder ($$) แต่คุณสามารถใช้ FlashDevelop ซึ่งเป็นทางเลือกโอเพนซอร์ส

คุณรู้สึกสบายใจกับเทคโนโลยีที่จัดตั้งขึ้นหรือเทคโนโลยีใหม่ ๆ ชั่งน้ำหนักความเสี่ยง
-. NET / Java มีมานานแล้ว - Silverlight & Flex ค่อนข้างใหม่และมีการถกเถียงกันว่า HTML 5 จะล้างแพลตฟอร์มเหล่านี้ออกหรือไม่

ทั้ง Silverlight และ Flex มีความสามารถในการโต้ตอบที่มากขึ้นซึ่ง Javascript ใช้สำหรับช่องว่างนี้โดยอาศัย Dojo.Framework

ความแตกต่างอย่างมากในการทำงานระหว่าง Web ADF และ Web API คือข้อเท็จจริงที่ว่า ArcGIS Web API นั้นเป็นฝั่งไคลเอ็นต์ทั้งหมด

ฉันจะปล่อยให้คนอื่นให้คำตอบเฉพาะ ESRI น้อยลง แต่ตัวเลือกที่ชัดเจนคือเริ่มเล่นกับGoogle Maps API - มีทรัพยากร / บทแนะนำมากมายสำหรับการเรียนรู้นี้


ว้าว. ขอบคุณสำหรับภาพรวม: DI เอนตัวไปทาง FOSS มากกว่านี้ แต่เนื่องจากฉันอยู่ในประเทศโลกที่สามและผลิตภัณฑ์ ESRI นั้นอยู่ไกลจากคนส่วนใหญ่ที่นี่
RK

หมายเหตุว่า ArcGIS (และอื่น ๆ อีกมากมาย) เว็บ API ที่ทำมากที่สุดของการประมวลผลของพวกเขาในฝั่งไคลเอ็นต์ แต่พวกเขาทั้งหมดต้องพึ่งพาอย่างหนักในการให้บริการรับการตีพิมพ์และ / หรือการประมวลผลในฝั่งเซิร์ฟเวอร์ ดังนั้นหากคุณต้องการทำมากกว่าการรวบรวมทรัพยากรที่มีอยู่ (เช่นการประมวลผลทางภูมิศาสตร์) คุณอาจต้องตรวจสอบเทคโนโลยีฝั่งเซิร์ฟเวอร์หรือทำการวิจัยที่หนักหน่วงเพื่อค้นหาวิธีดำเนินการในฝั่งไคลเอ็นต์
mwalker

ข้อสังเกต. กำลังตรวจสอบ geo-stack ที่เปิดอยู่ในขณะนี้
RK

3

Javascript, HTML DOM, CSS, HTTP

หากคุณเชี่ยวชาญเหล่านี้คุณสามารถทำอะไรก็ได้บนเว็บ การเพิ่ม API ที่ดีเช่น SVG อาจจะทำให้ง่ายขึ้นและเว็บแอปพลิเคชันของคุณจะดีกว่า แต่ IMO คุณจะไม่สามารถเข้าถึงสี่รายการที่กล่าวข้างต้นได้


Javascript, HTML DOM, CSS, HTTP มีคำสั่งพิเศษที่ฉันควรเรียนรู้หรือไม่ :)
RK

2
ฉันขอแนะนำลำดับต่อไปนี้: HTML, CSS, HTTP, DOM, JavaScript, นอกจากนี้ PHP และหรือ Python / Ruby สำหรับการเขียนสคริปต์ฝั่งเซิร์ฟเวอร์
underdark

3

สมมติว่าคุณสามารถจัดการฐานข้อมูลเชิงพื้นที่และเซิร์ฟเวอร์แผนที่ของคุณ [อธิบายไว้ในคำตอบอื่น ๆ ที่นี่] และรวบรวมความรู้เกี่ยวกับ HTML, CSS และ JavaScript คุณอาจเริ่มซ่อมแซมด้วยไคลเอ็นต์ไลบรารีที่จะใช้และแสดงส่วนประกอบแผนที่ภายในเว็บเบราว์เซอร์ของผู้ใช้

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

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

หรือคุณสามารถดูบิดาOSGeoโซลูชันการทำแผนที่เว็บหันไปแฟลช, หรือการใช้งานในเชิงพาณิชย์บางสิ่งบางอย่างเช่นESRI เว็บ APIs


3

ฉันเห็นด้วยกับอดัมว่าฐานข้อมูลเชิงพื้นที่และ SQL ควรเป็นจุดเริ่มต้น

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

ตรวจสอบให้แน่ใจว่าคุณเข้าใจแนวคิด WFSและWMS

ติดตั้งและเริ่มเล่นในเครื่องกับเซิร์ฟเวอร์ของคุณเอง ทั้งสองโครงการที่รู้จักกันดีกอดโดยมาเปิด Geospatial มูลนิธิมีGeoServerและMapServer ผู้ทำแผนที่ของ QGISอาจจะดูมีค่าเช่นกัน เซิร์ฟเวอร์ ArcGISน่าจะมีค่าใช้จ่ายเชิงพาณิชย์เทียบเท่า

เมื่อคุณแยกส่วนนี้คุณอาจเริ่มเล่นกับห้องสมุดลูกค้า


2

Mapnikหรือเครื่องมือแสดงแผนที่อื่น ๆ สำหรับการสร้างไทล์แผนที่

นักพัฒนาเว็บ GIS เกือบทุกคนจะต้องใช้เครื่องมือแสดงผลแผนที่หรืออย่างน้อยก็เข้าใจแนวคิดพื้นฐานของเลเยอร์และไทล์


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

2

รู้ว่าระบบปฏิบัติการเซิร์ฟเวอร์ของคุณเว็บเซิร์ฟเวอร์ (IIS, Apache, อะไรก็ตาม) และวิธีการรักษาความปลอดภัยข้อมูลของคุณ - แม้ว่าจะมีคนทำทุกอย่างให้คุณ


2

คุณสามารถทำงานผ่านหลักสูตรของฉัน (https://www.e-education.psu.edu/geog585/) ซึ่ง (ฉันคิดว่า) ให้คำแนะนำที่ดีและควรทำให้คุณพร้อม


1

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

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

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

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