ฉันต้องการเริ่มทำงานบนแผนที่เว็บที่ทำงานเพื่อทำแผนที่สถิติของเราตามเมือง
ฉันมีความคิด แต่ฉันไม่แน่ใจว่าจะเริ่มตรงไหน
มีแหล่งข้อมูลที่ชัดเจนที่ให้คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการทำเช่นนี้หรือไม่?
ฉันต้องการเริ่มทำงานบนแผนที่เว็บที่ทำงานเพื่อทำแผนที่สถิติของเราตามเมือง
ฉันมีความคิด แต่ฉันไม่แน่ใจว่าจะเริ่มตรงไหน
มีแหล่งข้อมูลที่ชัดเจนที่ให้คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการทำเช่นนี้หรือไม่?
คำตอบ:
คำถามนี้ถูกแปลงเป็น Community Wiki และ wiki ที่ถูกล็อกเนื่องจากเป็นตัวอย่างของคำถามที่ค้นหารายการคำตอบและดูเหมือนจะเป็นที่นิยมมากพอที่จะป้องกันไม่ให้ปิด ควรได้รับการพิจารณาว่าเป็นกรณีพิเศษและไม่ควรถูกมองว่าเป็นประเภทของคำถามที่ได้รับการสนับสนุนในเรื่องนี้หรือไซต์ Stack Exchange ใด ๆ แต่ถ้าคุณต้องการมีส่วนร่วมในเนื้อหามากขึ้นคุณสามารถแก้ไขได้โดยแก้ไขคำตอบนี้ .
คุณสามารถเลือกระหว่างการแก้ปัญหาด้วยองค์ประกอบเซิร์ฟเวอร์แผนที่หรือไม่ แน่นอนว่าโซลูชันเซิร์ฟเวอร์รองรับข้อมูลเพิ่มเติมและแอปพลิเคชันที่ซับซ้อนยิ่งขึ้น
ถ้าคุณรู้ว่า QGIS ต้องการสร้างการสร้างภาพข้อมูลแบบครั้งเดียวฉันจะแนะนำ QGIS2Leafหรือส่งออกไปยัง OpenLayers 3ซึ่งเป็นทั้งปลั๊กอินสำหรับ QGIS ซึ่งอนุญาตให้คุณส่งออกเลเยอร์ไปยังแผนที่เว็บ อัปเดต (ขึ้นอยู่กับความคิดเห็นของ Tom Chadwin): qgis2leaf และ qgis-ol3 ได้ถูกรวมเข้ากับqgis2webแล้ว
ทางสายกลางตัวเลือกQGIS เมฆเป็นตัวเลือกที่ QGIS เซิร์ฟเวอร์โฮสต์: คุณเพียงแค่เตรียมความพร้อมโครงการในประเทศและแล้วเผยแพร่ไปยังเว็บที่คุณจะหาได้ในมุมมองสำเร็จรูป พวกเขามีบัญชีฟรีจนถึงขนาดข้อมูลที่แน่นอน ดังนั้นคุณไม่จำเป็นต้องใช้เซิร์ฟเวอร์ของคุณเองหากเป็นปัญหาสำหรับคุณ
หากคุณต้องการที่จะเรียกใช้เซิร์ฟเวอร์เปิดแหล่งที่มาของคุณเองคุณสามารถเริ่มต้นด้วยการแนะนำนี้เพื่อ Geoserver จากปีที่ผ่านมา FOSS4G: http://workshops.opengeo.org/geoserver-intro/ เครื่องมือที่เกี่ยวข้องมักจะเป็น Geoserver, PostGIS และ OpenLayers ต้นทุนการเริ่มต้นคือเวลาทำงานของคุณรวมถึงการโฮสต์
เป็นการยากที่จะประเมินเวลาในการปรับใช้โดยไม่ทราบว่ากรณีการใช้งานของคุณเป็นอย่างไร
GeoGATE
ลิงก์ GeoGATE นั้นยอดเยี่ยมด้วย PostGIS & Geoserver และมีเครื่องมือสำเร็จรูปหลายร้อยรายการที่คุณสามารถกำหนดค่าผ่านแผงควบคุมที่ใช้งานง่ายพร้อมข้อมูลของคุณ
Penn State มีคลาสWeb Mapping ที่เปิดอยู่ ควรจะเพียงพอที่จะสอนวิธีการทำแผนที่เว็บและเทคโนโลยีที่เกี่ยวข้อง เครื่องมือที่ใช้ในชั้นเรียนส่วนใหญ่ถ้าไม่ใช่ทั้งหมดนั้นฟรีคุณจึงไม่ควรมีปัญหา นี่คือ TOC:
บทที่ 0: การวางแนว
บทที่ 1: ความรู้เบื้องต้นเกี่ยวกับการเปิดการทำแผนที่เว็บ
บทที่ 2: Web Map Servers (WMS)
บทที่ 3: เซิร์ฟเวอร์คุณลักษณะเว็บ (WFS)
บทเรียน 4: Extensible Markup Language (XML)
บทเรียน 5: เซิร์ฟเวอร์แผนที่เว็บขั้นสูง
บทที่ 6: ภาษามาร์กอัปทางภูมิศาสตร์ (GML)
บทที่ 7: WFS มาเยือนแล้ว
บทเรียนที่ 8: การสร้างแอปพลิเคชันการทำแผนที่เว็บ
บทเรียนที่ 9: การสร้างไคลเอ็นต์ Web Mapping ที่กำหนดเองแบบบาง
มีความสุข :)
Google Fusion Tablesกำลังมองหาคำสัญญาเกี่ยวกับการจับคู่และการสืบค้นเชิงพื้นที่
ข้อดี: ติดตั้งง่าย
ข้อด้อย: ข้อมูลทั้งหมดของคุณอยู่บนเซิร์ฟเวอร์ google (ดีหรือไม่ดี)
http://sites.google.com/site/fusiontablestalks/stories
หมายเหตุ: บริษัท สื่อ / ข่าวจำนวนมากกำลังใช้งานอยู่ - ตัวอย่างหนังสือพิมพ์ Guardian UK http://www.guardian.co.uk/environment/datablog/interactive/2011/mar/07/carbon-emissions-public-buildings-map
ตอนนี้มีตัวช่วยสร้างฟิวชั่นที่เรียบร้อยเพื่อให้คุณตั้งค่าได้เร็วขึ้น http://gmaps-samples.googlecode.com/svn/trunk/fusiontables/fusiontableslayer_builder.html
ตัวอย่าง: http://www.latimes.com/news/local/la-me-us-congress-census-map,0,4500533.htmlstory
หนึ่งในดีที่สุด: http://tinyurl.com/England-Deprivation-Mapped
มีตัวเลือกมากมายออกมีและคำตอบที่ดีมากมายแล้ว สองทางเลือกที่ชื่นชอบของฉันที่ยังไม่ได้รับการจดทะเบียนแล้วที่นี่มีCartoDBและMapBox ทั้งสองอย่างนี้ให้บริการโฮสติ้งบนเว็บและการแสดงข้อมูลและเครื่องมือแฟนซีราคาเริ่มต้นที่ฟรี
คุณจะได้รับประโยชน์จากการมีซอฟต์แวร์เดสก์ท็อปเพื่อตั้งค่าข้อมูลของคุณ ArcMap และ Quantum GIS เป็นทั้งตัวเลือกที่ยอดเยี่ยมสำหรับชิ้นส่วนเดสก์ท็อป
ฉันบอกได้ว่าจุดแข็งของ MapBox คือการสร้างแผนที่เว็บที่สวยงามพร้อมด้วยแม่แบบที่ยอดเยี่ยมใช้งานง่ายและพร้อมใช้งานได้ทันที MapBox ต้องการโปรแกรมเดสก์ท็อปที่เรียกว่าTileMill (ฟรี) ซึ่งใช้อินเทอร์เฟซการออกแบบที่คล้ายกับ CSS
จุดแข็งของ CartoDB คือการเปิดเผยรูทของPostGISผ่านSQL API
ทั้งสองอย่างนี้สามารถใช้งานได้ด้วยตัวเองหรือใช้ร่วมกับไลบรารีการทำแผนที่จาวาสคริปต์อื่น ๆ (เช่นLeaflet , Google Maps , OpenLayers )
ไม่ว่าแพลตฟอร์มใดที่คุณตัดสินใจที่จะเริ่มใช้ในการทำแผนที่เว็บคุณจะได้รับประโยชน์จากการเรียนรู้จาวาสคริปต์อย่างแน่นอน Codecademyเป็นจุดเริ่มต้นที่ยอดเยี่ยม (เช่นฟรี !!)
ฉันเพิ่งเข้าร่วมการประชุมที่พวกเขานำเสนอOpenGeo Suiteซึ่งเป็นสแต็คของ OpenLayers, GeoServer, GeoExt & PostGIS พวกเขามีทั้ง "Enterprise Edition" (จ่ายสำหรับรุ่นที่มีการสนับสนุน) หรือ " Community Edition " (ฟรี) (อัปเดต) ชุด OpenGeo เป็น Boundless Suite
แพ็คเกจอื่นที่แสดงให้เห็นในการประชุมคือGeoMooseซึ่งเป็นชุดของ MapServer และ OpenLayers
คุณอาจลองดาวน์โหลดOSGEO Live DVDซึ่งคุณสามารถเรียกใช้ในสภาพแวดล้อมของเครื่องเสมือนในกรณีที่คุณไม่ต้องการติดตั้งสิ่งต่าง ๆ บนเครื่องของคุณในขณะที่ทำการทดสอบ มาพร้อมกับแพ็คเกจซอฟต์แวร์ GIS โอเพ่นซอร์สที่หลากหลายรวมถึงเครื่องมือการแมปเว็บ
แก้ไข
เนื่องจากความนิยมของคำถามและคำตอบนี้ฉันกำลังเพิ่มการแก้ไขเนื้อหาบางส่วนในโพสต์นี้เนื่องจากการเปลี่ยนแปลงกับผู้ให้บริการและ API ในช่วงหลายเดือนที่ผ่านมา
ตัวเลือก API เกี่ยวข้องกับขอบเขตและวัตถุประสงค์ของโครงการไม่ต้องพูดถึงงบประมาณของคุณหากคุณต้องการใช้ฟังก์ชันการทำงานเฉพาะ ข้อแม้สำคัญอื่น ๆ คือประสบการณ์การพัฒนาเว็บไซต์ของคุณและภาษาที่คุณต้องการหรือมีความสนใจ
ฉันคิดว่าวิธีที่ดีที่สุดในการตอบคำถามของคุณคือให้รายชื่อ API ที่ดีสำหรับคุณ ที่นี่สามที่อยู่ในใจ สิ่งเหล่านี้ไม่ได้ทั้งหมด!
ArcGIS
APIs:
ข้อดี:
จุดด้อย:
สรุป:
ArcGIS มีข้อเสนอมากมายสำหรับผลิตภัณฑ์เว็บ GIS และมีแหล่งข้อมูลมากมายที่จะช่วยเหลือคุณตลอดเส้นทาง เพียงแค่ตระหนักถึงค่าใช้จ่ายที่อาจเกิดขึ้นเมื่อคุณต้องการเผยแพร่ข้อมูลของคุณเอง
APIs:
ข้อดี:
จุดด้อย:
สรุป:
Google มีชื่อที่แข็งแกร่งในตลาดและบริการออนไลน์ที่น่าเชื่อถือ เพียงให้แน่ใจว่าได้ทำความเข้าใจรายละเอียดเกี่ยวกับประเพณีของพวกเขาดังนั้นคุณจึงไม่ต้องเหยียบนิ้วเท้าใด ๆ หน้าการกำหนดราคาและแผนใหม่ค่อนข้างมีประโยชน์ในเรื่องนั้น
โอเพ่นซอร์ส
API (ตาม JavaScript ทั้งหมด):
ข้อดี:
จุดด้อย:
สรุป:
โอเพ่นซอร์สเป็นตัวเลือกที่ยอดเยี่ยมสำหรับผู้ที่ต้องการทดสอบน่านน้ำของ Web GIS ด้วยการเปลี่ยนแปลงและการปรับปรุงที่เกิดขึ้นทุกวันในชุมชนโอเพ่นซอร์สอาจเป็นวิธีที่ไม่แพงในการตอบสนองความต้องการเชิงพื้นที่ของคุณ
ดังที่ฉันได้กล่าวมานี่ไม่ใช่ตัวเลือกทั้งหมดที่คุณมี แต่อย่างน้อยตอนนี้ก็มีโพสต์พร้อมลิงก์สำหรับตัวคุณเองและคนอื่น ๆ เพื่อทำความคุ้นเคยกับผู้เล่นคนสำคัญในโลก Web GIS
ดูเหมือนว่าคุณจะได้คำตอบของโอเพ่นซอร์สในคำถามข้างต้น หาก บริษัท ของคุณมีงบประมาณ ESRI อาจเป็นตัวเลือกที่ดีมาก เพื่อชี้แจง API การ webmapping ในและของตัวเองมีอิสระที่จะใช้ แต่เซิร์ฟเวอร์แบ็กเอนด์ ArcGIS และ SDE จะเสียค่าใช้จ่ายคุณ นอกจากนี้จำเป็นต้องมีซอฟต์แวร์เดสก์ท็อปเพื่อสร้างบริการแผนที่ที่จะใช้ในแอปพลิเคชันการทำแผนที่เว็บ หากคุณสามารถเข้าถึงแหล่งข้อมูลเหล่านี้ได้หรือสามารถซื้อได้ฉันขอแนะนำให้ค้นหาวิธีแก้ไขปัญหา ESRI
ข้อดีอย่างหนึ่งของที่นี่คือคุณสามารถเขียนโค้ดได้หลายภาษา มี API เฉพาะของ ESRI สำหรับ Flex และ Silverlight:
ยืดหยุ่น: http://help.arcgis.com/th/webapi/flex/index.html Silverlight: http://help.arcgis.com/en/webapi/silverlight/index.html
ขณะนี้ดูเหมือนว่าแนวโน้มในการเขียนโปรแกรมเว็บกำลังเคลื่อนห่างจากโซลูชันที่ต้องใช้ปลั๊กอินและเป็นผู้ขายเฉพาะ (ด้านบน) และไปสู่โอเพนซอร์สและเฟรมเวิร์กที่ใช้มาตรฐานมากขึ้น ESRI ครอบคลุมสิ่งนี้ด้วย Javascript API:
Javascript: http://help.arcgis.com/th/webapi/javascript/arcgis/
ถ้าคุณดูที่เว็บไซต์ API เอกสารเหล่านี้ดีมาก นอกจากนี้ฟอรัมพร้อมใช้งานสำหรับความช่วยเหลือจากชุมชนเกี่ยวกับปัญหาเฉพาะ การสนับสนุนด้านเทคนิคผ่าน ESRI นั้นดีมากเช่นกัน ดังนั้นราคาและทรัพยากรจึงลดลงหากคุณมีแอปพลิเคชั่นเหล่านี้อยู่แล้วหรือมีงบประมาณนี่เป็นเส้นทางที่ยอดเยี่ยม
ถ้าคุณต้องการที่จะสร้างต้นแบบเพื่อการศึกษาความเป็นไปได้ที่จะแสดงให้เจ้านายของคุณซึ่งเป็นสิ่งที่ฉันต้องทำเมื่อหนึ่งปีก่อนดังนั้นสำหรับแบ็กเอนด์ฉันขอแนะนำ Geoserver เพราะเว็บอินเตอร์เฟสที่เป็นมิตรกับผู้ใช้ รูปร่างที่เรียบง่าย สำหรับส่วนหน้า OpenLayers เป็นตัวเลือกที่ยอดเยี่ยมพร้อมตัวอย่างจำนวนมากบนเว็บไซต์ ฉันไม่ใช่นักเขียนโปรแกรมเว็บ แต่อย่างใด แต่ฉันพบว่าการคัดลอก / วาง / ปรับแต่งตัวอย่างจาวาสคริปต์นั้นง่ายมาก ฉันใส่ทั้งหมดนี้ลงใน VirtualBox VM เพื่อเก็บไว้ในที่เดียวและไม่ทำลายสภาพแวดล้อม dev ปกติของฉันโดยใช้แพ็คเกจจากที่เก็บ UbuntuGIS
สำหรับการผลิตนั้นมีหลายสิ่งที่ขึ้นอยู่กับการใช้งานของคุณ สำหรับฉันในที่สุดฉันก็ไปกับ Mapserver เพราะมันไม่ป่องเหมือน Geoserver ที่ทำงานเหมือนกระบวนการ cgi ที่รวดเร็วบนเว็บเซิร์ฟเวอร์ lighttpd เราต้องการ WFS-T (ซึ่ง Geoserver รองรับนอกกรอบ) แต่ Mapserver ไม่ทำเช่นนั้นเราจึงใช้ Tinyows นอกจากนี้เรายังให้บริการความคุ้มครอง (WCS) ซึ่ง Mapserver สนับสนุนและเรากำลังมองหาการบูรณาการ Rasdaman สำหรับการสนับสนุน WCS-T ทั้งหมดนี้ได้รับการสนับสนุนโดยฐานข้อมูล PostGIS
ฉันขอแนะนำให้แบ่งแอปพลิเคชันของคุณให้เป็นแบ็คเอนด์กลางและฟรอนท์เอนด์และอ่านข้อดีข้อเสียของซอฟต์แวร์แต่ละชิ้น อาจมีเพียงไม่กี่คำตอบสำหรับแต่ละเลเยอร์ แต่เพิ่มขึ้นเชิงผสม
ฉันเชื่อว่า ESRI ทำให้ผลิตภัณฑ์สามารถทำสิ่งนี้ได้ทั้งหมด แต่จะมีค่าใช้จ่าย หากเวลาของคุณอยู่ในระดับพรีเมี่ยมเส้นทางการค้าอาจเป็นหนทางที่จะไป แต่เส้นทางโอเพนซอร์ซกำลังมุ่งหน้าไปในทิศทางที่น่าตื่นเต้นและฉันสงสัยว่าในที่สุดจะทำได้ดีกว่าสิ่งที่ ESRI จะทำได้ แต่แล้วฉันก็เป็นแฟน FOSS แบบลำเอียง :)
สำหรับคุณสมบัติที่แนะนำของคุณฉันจะดูว่าสแต็คตรงไปตรงมาที่สุดและง่ายต่อการติดตั้งที่ตรงกับความต้องการของคุณ ซอฟต์แวร์ที่พูดว่า "คุณสามารถมีพลังรวดเร็วหรือราคาถูกเลือกได้สองแบบ" ใช้กับที่นี่อย่างแน่นอน
หากคุณวางแผนที่จะทำคำสั่งง่ายๆเช่นการระบุคุณสมบัติดังนั้นพลังของ PostGIS น่าจะเกินกำลัง มันง่ายมากที่จะอัปโหลดไฟล์รูปร่างเป็นที่เก็บข้อมูลโดยตรงไปยัง GeoServer
OpenLayers นั้นยอดเยี่ยมอีกครั้งและมีฟังก์ชั่นมากมายเช่นการรองรับระบบพิกัดอื่นที่ไม่ใช่ WGS84 และ Web Mercator แต่ถ้าคุณไม่ได้ใช้ฟังก์ชั่นนั้นฉันก็จะดูที่Leafletในประสบการณ์ของฉันมันมีน้อยกว่ามาก โค้งการเรียนรู้ที่สูงชันสำหรับผู้ใช้ใหม่
นอกจากนี้หากคุณไม่มีข้อกำหนดที่ระบุว่าคุณต้องโฮสต์แอปบนเซิร์ฟเวอร์ของคุณเองคุณสามารถดูตัวเลือกที่โฮสต์บางตัวเนื่องจากคุณจะได้รับเงินคืนมากขึ้นจากเวลาที่ลงทุน การใช้MangoMapหรือGeoCommonsคุณน่าจะจบลงด้วยแผนที่ที่ยอดเยี่ยมสำหรับผู้ใช้ของคุณโดยไม่ต้องเขียนโค้ดบรรทัดเดียว
ถ้านี่เป็นโครงการที่คุณต้องการที่จะเขียนโค้ดบางส่วนแล้วคุณยังสามารถใช้ดูที่CartoDBและMapBox หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับแพลตฟอร์มที่โฮสต์ทั้งหมดเหล่านี้ฉันเขียน ebook ฟรีเกี่ยวกับเรื่องที่ให้รายละเอียดทั้งหมดที่คุณต้องเลือก
การเปิดเผยข้อมูล : ฉันเป็นผู้ก่อตั้ง MangoMap
มีสถานที่มากมายที่จะเริ่มเมื่อพัฒนาแผนที่เว็บ
หากคุณมีประสบการณ์ในการเป็นนักพัฒนาเว็บคุณควรเริ่มต้นด้วยการตรวจสอบบริการต่างๆที่มีให้ซึ่งจะช่วยให้คุณเผยแพร่แผนที่บนเว็บ มีคำถามอื่นที่ ตอบไว้ที่นี่ในเว็บไซต์นี้ซึ่งจะให้ข้อมูลเชิงลึกเกี่ยวกับความแตกต่างระหว่างแพลตฟอร์มที่มีให้คุณ
หากคุณเริ่มต้นใหม่และไม่ต้องการผูกมัดกับแพลตฟอร์มใด ๆ ให้ตอบสนองความต้องการทางธุรกิจของคุณ คุณจะวาดข้อมูลของคุณบนแผนที่ได้อย่างไร? ข้อมูลจะได้รับการปรับปรุงอย่างไร ใครจะใช้เว็บไซต์นี้ พวกเขาจะทำอะไรกับมัน? การตัดสินใจเหล่านี้ แต่เนิ่นๆจะช่วยให้คุณประกอบชิ้นส่วนหรือเลือกตัวเลือกที่จะรองรับการขยายตัวสู่เป้าหมาย
สำหรับค่าใช้จ่าย ... ฉันชอบที่จะยืมสุภาษิตที่ทันสมัย: "ดีรวดเร็วราคาถูกเลือกสองอัน" มันถูกกำหนดอย่างเป็นทางการเป็นสามเหลี่ยมการบริหารจัดการโครงการซึ่งอธิบายความสมดุลระหว่างต้นทุนการกำหนดเวลาและขอบเขตเพื่อนำคุณภาพ
ฉันเพิ่งเริ่มต้นการเดินทางทำแผนที่เว็บหลังจากหลายปีที่ผ่านมาในด้านฐานข้อมูลของสิ่งต่าง ๆ
สิ่งที่ช่วยฉันได้คือการเรียนรู้หลักการเขียนโปรแกรมพื้นฐานโดยใช้ MapBasic สำหรับ MapInfo (หรือฉันสมมติว่า Python สำหรับฝูงชน esri) ช่วยให้ฉันเข้าใจว่าคอมพิวเตอร์ "คิด" อย่างไร
จากที่นั่นCodeAcademyมาจากสวรรค์ มันเป็นวิธีที่สนุกและง่ายในการเรียนรู้การเขียนโปรแกรม มันสามารถพาคุณจากตัวอย่าง "Hello World" ไปจนถึงโปรแกรมการทำงานและการโต้ตอบอย่างสมบูรณ์ ช่วงการเรียนรู้นั้นค่อยเป็นค่อยไปและเข้าใจว่าบางคนมีพรสวรรค์กับสิ่งนี้และคนอื่น ๆ (เช่นฉัน) ไม่ได้
คำแนะนำที่สองคือการติดตั้ง GeoServer และดูคำขอสาธิตเพื่อดูว่าบริการเว็บมีโครงสร้างอย่างไรและทำงานอย่างไร ดูตัวอย่างเลเยอร์เพื่อดูว่า Javascript และ HTML ทำงานร่วมกันอย่างไร คุณสามารถคัดลอกโค้ดเลเยอร์ตัวอย่างนั้น (ดูซอร์สโค้ดหน้า) บันทึกไว้ที่ใดที่หนึ่งแล้วเริ่มแก้ไข
โรงเรียน W3 - มีตัวอย่างแบบโต้ตอบซึ่งคุณสามารถเล่นและปรับให้เข้ากับรหัสนกของคุณ หากคุณตัดสินใจเกี่ยวกับ JavaScript JS Fiddle ก็ดีมากเช่นกัน
คุณสามารถใช้OpenLayersสำหรับฝั่งไคลเอ็นต์ มันเสถียรง่ายและมีตัวอย่างมากมายเกี่ยวกับวิธีใช้ WFS (ในกรณีของคุณเพื่อเชื่อมต่อกับ PostgreSQL) ฯลฯ Geoserver, OSM ใช้เพื่อการแสดงผล
คุณยังสามารถดูGeoExtซึ่งมีวิดเจ็ตextJSสำหรับการสร้างแผนที่ geoext อีกครั้งใช้ OpenLayers สำหรับการแสดงแผนที่
นอกจากนี้ยังมีโครงสร้างพื้นฐานของ PHP ที่ใช้MapServer (OpenLayers รองรับแล้ว) เช่นGeoMoose , CartoWebเป็นต้น
ฉันลงคะแนนให้ OpenLayers เนื่องจากคุณสามารถตัดสินใจเกี่ยวกับการออกแบบหน้าเว็บทั้งหมดซึ่งแตกต่างจาก php framework ที่ทำงานกับการผูก MapScript ซึ่งมีแม่แบบเริ่มต้นและฉันพบว่าการจัดการฐานรหัสขนาดใหญ่นั้นไม่ใช่เรื่องง่าย
สามทักษะที่จำเป็นสำหรับการพัฒนาเว็บส่วนใหญ่รวมถึงการทำแผนที่เว็บคือ html, css และ javascript แหล่งข้อมูลเพื่อเรียนรู้ภาษาเหล่านั้นเพียงพอ หัวข้อที่จะเริ่มเรียนรู้วิธีพัฒนาแอปพลิเคชั่นการทำแผนที่บนเว็บนั้นได้รับการคุ้มครองอย่างดีในคำถามแลกเปลี่ยน GIS Stack วิธีการเริ่มต้นทำแผนที่เว็บ
ทรัพยากรหนึ่งที่จะมองเข้าไปในการพัฒนาโปรแกรมการทำแผนที่เว็บถ้าคุณได้รับการ จำกัด ประสบการณ์การเขียนโปรแกรมเป็นmapbox คุณสามารถสร้างแผนที่เว็บได้โดยไม่ต้องมีการเขียนโค้ด แต่ฉันคิดว่ามันยากที่จะสร้างแผนที่เว็บที่ซับซ้อนและมีปฏิสัมพันธ์เหมือนกับที่คุณใช้ในตัวอย่างของคุณโดยไม่ต้องใช้ภาษาสคริปต์เช่น javascript หรือ python
ฉันใช้leafletjsและฉันคิดว่ามันง่ายมาก มันเป็นพื้นฐานของจาวาสคริปต์และสามารถวาดคุณสมบัติโดยใช้แหล่งข้อมูลต่างๆ โดยทั่วไปคุณใส่รหัสแผนที่ลงในไฟล์. html แล้วดูไฟล์ ฉันไม่สามารถแสดงความคิดเห็นกับ API อื่น ๆ ได้ แต่ฉันคิดว่า google นั้นค่อนข้างเรียบง่ายและ Openlayers
นอกจากนี้ยังมีบริการต่างๆเช่น MapBox ที่ไม่ต้องการให้คุณโฮสต์ไฟล์ html แต่เพียงอัปโหลดข้อมูลของคุณไปยังพวกเขา
ฉันคิดว่าวิธีที่ง่ายที่สุดที่จะไปกับปลั๊กอิน qgis + qgis2leaflet คุณสามารถแก้ไขสิ่งที่คุณต้องการใน qgis กว่าส่งออกเป็นใบปลิวและอัปโหลดไปยังเว็บเซิร์ฟเวอร์ของคุณ หรือถ้าคุณเลือกวิธีที่น่าสนใจมากกว่า:
แทนที่จะใช้ geoexplorer ฉันจะใช้ javascript ของ leaflet เพราะมันดูดีกว่าและทำงานได้ราบรื่นกว่า ... แต่ใช้เวลาพอสมควรในการคัดลอก / วางรหัสบางส่วนเข้าด้วยกัน นี่คือตัวอย่าง: http://gis.xyz
สิ่งสำคัญที่ควรทราบคือ Web-Gis เป็นสาขาที่กว้างใหญ่และมีการทำงานมากมายในโครงการและห้องสมุดหลายแห่งเพื่อช่วยในการดำเนินการนี้ ดังนั้นเราต้องดูว่ามีสิ่งที่คุณสามารถนำกลับมาใช้ใหม่ได้หรือไม่แทนที่จะเริ่มต้นใหม่
ข่าวร้ายคือไม่มีไลบรารี / แอปพลิเคชันยอดนิยมสำหรับการทำแผนที่เว็บใน php ข่าวดีก็คือคุณอาจไม่ต้องการ
ฉันขอแนะนำให้คุณลองทำความเข้าใจกับ WebMapping ก่อนและทำความเข้าใจกับโครงการและห้องสมุดที่มีอยู่แล้ว สำหรับสิ่งนี้คุณสามารถอ้างถึงคำถามเหล่านี้:
เมื่อคุณเข้าใจตัวเลือกที่มีแล้วคุณควรชี้แจงข้อกำหนดของคุณ เมื่อมองที่คำถามของคุณคุณมีข้อกำหนดขั้นพื้นฐานมาก: แสดงพัสดุบนแผนที่อนุญาตให้ทำแบบสอบถามรับคุณลักษณะสำหรับพัสดุและแสดงให้ผู้ใช้เห็นจากผลลัพธ์ของแบบสอบถามหรือเมื่อผู้ใช้คลิกที่มัน
การทำงานประเภทนี้เป็นไปได้โดยใช้ Google Maps แต่ฉันไม่แนะนำเพราะ Google Maps API นั้นเจ็บปวดเมื่อคุณมีข้อมูลจำนวนมาก
ฉันขอแนะนำให้คุณใช้ Geoserver / OpenLayers แทนโดยที่คุณสามารถใช้งาน JavaScript ได้ คุณอาจไม่จำเป็นต้องใช้รหัส php ใด ๆ หากข้อมูลของคุณอยู่ในคุณสมบัติของฟีเจอร์ทั้งหมด
ก่อนที่จะตัดสินใจเลือกระหว่าง Leaflet และ OpenLayers มันอาจคุ้มค่าที่จะดูเวอร์ชั่นที่กำลังจะมาถึงซึ่งสัญญาว่าจะทำการล้าง API และเอกสารที่ดีกว่า:
OpenLayers 3 เป็นการเขียนซ้ำที่ครอบคลุมของไลบรารีโดยกำหนดเป้าหมายไปยังคุณลักษณะล่าสุดใน HTML5 และ CSS3 ห้องสมุดจะยังคงให้การสนับสนุนอย่างกว้างขวางสำหรับการคาดการณ์โปรโตคอลมาตรฐานและฟังก์ชันการแก้ไขจาก OpenLayers 2.x ไลบรารีเวอร์ชันใหม่จะมุ่งเน้นไปที่การปรับปรุงประสิทธิภาพการสร้างที่มีน้ำหนักเบาส่วนประกอบภาพที่ดีขึ้น API ที่ได้รับการปรับปรุงและอื่น ๆ ไฮไลท์ที่สำคัญบางประการ ได้แก่ :
- - - - - - 8 8 - - - - - -codebase ใหม่: นี่เป็นโอกาสในการทำความสะอาดบางส่วนของ "clunky" วิธีการทำสิ่งต่าง ๆ ใน OpenLayers ทีมจะสร้างด้วยการออกแบบ API ใหม่ซึ่งทุกคนสามารถเข้าถึงได้มากขึ้น
เอกสารคุณภาพสูง: รีลีสใหม่นี้จะมีเอกสารประกอบพร้อมตัวอย่างสดใหม่และการออกแบบเริ่มต้นใน OpenLayers 3.0 การทำให้ชุดเครื่องมือมีความโดดเด่นเป็นมากกว่าโค้ดจริง
ฉันจะเริ่มต้นด้วยGoogle Maps API มันฟรีและใช้งานง่ายด้วย มันใช้ Javascript ซึ่งสามารถเรียนรู้ผ่านแหล่งข้อมูลที่ดีจำนวนหนึ่ง ฉันจะแนะนำCodecademyถ้าคุณยังใหม่กับ JS
มีแหล่งข้อมูลฟรีมากมายที่สามารถรวมเข้ากับ Google Maps ได้หลายวิธี (KML, ฐานข้อมูล, GeoRSS ฯลฯ ) รัฐส่วนใหญ่และมหาวิทยาลัยหลายแห่งมีแหล่งข้อมูลฟรีซึ่งสามารถรวมไว้ในแผนที่ของคุณ
หนึ่งในเว็บไซต์ที่ชื่นชอบสำหรับตัวอย่าง Google แผนที่Google Maps Mania มีตัวอย่างแผนที่ยอดเยี่ยมที่แสดงสิ่งที่เป็นไปได้ใน API นี้
GeoPHPอาจคุ้มค่ากับการดู
GeoPHP เป็นไลบรารี PHP แบบโอเพ่นซอร์สสำหรับการดำเนินการทางเรขาคณิต มันเขียนทั้งหมดใน PHP และสามารถทำงานบนโฮสต์ที่ใช้ร่วมกันได้ สามารถอ่านและเขียนรูปแบบที่หลากหลาย: WKT (รวมถึง EWKT), WKB (รวมถึง EWKB), GeoJSON, KML, GPX, GeoRSS มันทำงานร่วมกับรูปทรงเรขาคณิตที่เรียบง่ายทั้งหมด (จุด, LineString, รูปหลายเหลี่ยม, GeometryCollection ฯลฯ ) และสามารถใช้ในการรับ centroids, กล่องขอบเขต, พื้นที่และข้อมูลที่เป็นประโยชน์อื่น ๆ อีกมากมาย
และคุณสามารถเพิ่มขีดความสามารถด้วยส่วนขยาย GEOS (สมมติว่าคุณมีสิทธิ์ระดับผู้ดูแลระบบสำหรับการติดตั้ง GEOS)
ด้วย GEOS คุณจะได้รับฟังก์ชั่นเต็มรูปแบบของ openGIS ใน PHP เช่น Union, IsWithin, Touches และอื่น ๆ ซึ่งหมายความว่าแอปพลิเคชันจะได้รับประโยชน์ "ชุดแกนหลัก" ของการปฏิบัติการทางเรขาคณิตที่ทำงานในทุกสภาพแวดล้อมและ "ขยายชุด" การดำเนินงานสำหรับสภาพแวดล้อมที่ติดตั้ง GEOS
สคริปต์ PHP ที่กำหนดเองอาจเป็นโซลูชันที่มีประสิทธิภาพมากขึ้น ท้ายที่สุดแล้วข้อมูลเชิงพื้นที่เป็นเพียงแถวในฐานข้อมูลและพวกเขาสามารถสอบถามได้ตามปกติ ไม่จำเป็นต้องใช้ซอฟต์แวร์ GIS เซิร์ฟเวอร์หนักและ / หรือไวยากรณ์ตัวกรอง OGC ที่น่ากลัว ถ้าฉันอยู่ในรองเท้าของคุณฉันจะเก็บข้อมูลในฐานข้อมูล PostgreSQL ด้วยส่วนขยาย PostGIS เขียน PHP แบ็คเอนด์เพื่อสืบค้นฐานข้อมูลและดึงข้อมูลในรูปแบบ GeoJSON (ดูส่วนสำคัญนี้ ) และแอปพลิเคชันเว็บส่วนหน้าตาม OpenLayers - ยืดหยุ่นกว่า Google Maps API แต่คุณยังสามารถใช้ Google Base maps ได้หากต้องการ
สำหรับความช่วยเหลือในการเลือกคำถามทางเลือกของ ArcGIS Onlineและหนังสือวารสารแหล่งข้อมูลอิเล็กทรอนิกส์ใดที่มีค่ามากที่สุดสำหรับการขยายความรู้สารสนเทศทางภูมิศาสตร์ คำถามสำหรับแหล่งเรียนรู้
ค่าใช้จ่ายในการทำแผนที่เว็บไซต์รวมถึงการโฮสต์ (จ่ายค่าเว็บไซต์) และพื้นที่เก็บข้อมูลเซิร์ฟเวอร์ (ถ้าคุณใช้บริการการทำแผนที่ให้ดูที่การกำหนดราคา MapBoxและการกำหนดราคา CartoDBต่อเดือน) ท้ายที่สุดการรู้การพัฒนาเว็บไซต์เป็นสิ่งสำคัญมากในการสร้างแผนที่ของคุณ
มีห้องสมุดการจับคู่สองสามอย่างที่คุณสามารถใช้ได้
ครั้งแรก (และอาจเป็นที่รู้จักกันดีที่สุด) จะเป็นGoogle Maps APIแต่ฉันคิดว่านี่ค่อนข้างซับซ้อนหากคุณค่อนข้างใหม่ในการทำแผนที่เว็บ
ฉันจะขอแนะนำให้ดูที่Leaflet.jsหรือMapbox.js Mapbox.js ถูกสร้างด้วย Leaflet ในใจและMapbox มีบทเรียนที่ยอดเยี่ยมเกี่ยวกับงานต่าง ๆ ที่คุณสามารถทำได้ด้วย Mapbox.js แผ่นพับยังมีตัวอย่างและแหล่งข้อมูลอีกด้วย
นี่คือลิงค์เฉพาะไปยังตัวอย่างที่จะช่วยนำทางคุณไปในทิศทางที่ถูกต้อง
หากคุณต้องการแผนที่ที่คุณคลิกประเทศและภาพปรากฏขึ้นคุณสามารถดูตัวอย่าง Mapbox สำหรับการเชื่อมโยงไปยังข้อมูลภายนอก
คุณสามารถเรียนรู้วิธีการโต้ตอบของรหัสในJSFiddle สำหรับโครงการ
หากคุณต้องการเอกสารเพิ่มเติมเกี่ยวกับ Mapbox คุณสามารถอ่านคู่มือ Mapboxของพวกเขาหรือดำน้ำในรหัสอีกเล็กน้อยโดยใช้ส่วนตัวอย่าง
ฉันเป็น webmapper ใหม่และถูกเรียกว่าสกอตต์เมอร์เรแสดงข้อมูลสำหรับเว็บ ebook ของเขาสามารถอ่านได้ที่นี่: http://chimera.labs.oreilly.com/books/1230000000345/ฟรี มันมีไว้สำหรับ 'noncoders' ที่ให้ข้อมูลอย่างมากและมีตัวอย่างมากมาย
คุณสามารถใช้ UMN Map Server ที่นั่นคุณสามารถใช้สคริปต์ PHP (เรียกว่าสคริปต์แผนที่) สิ่งนี้ขึ้นอยู่กับเซิร์ฟเวอร์ Apache หากคุณต้องการฐานข้อมูลคุณสามารถใช้ MySQL กับส่วนขยายเชิงพื้นที่หรือ PostgreSQL กับ postGIS ...