แสดงภาพใน OpenLayers หรือไม่


11

องค์กรของฉันมีเว็บแอปพลิเคชันสำหรับแสดงข้อมูลสภาพภูมิอากาศโลกและภูมิภาคและเรากำลังพิจารณาการปรับปรุง แนวคิดหลักของเราคือการสร้างแอพพลิเคชั่นที่ใช้ OpenLayers เพื่อแสดง rasters สภาพอากาศเหนือเลเยอร์ฐานเช่น OSM หรือ Google Maps แผนที่อาจรวมถึงเลเยอร์เวกเตอร์เฉพาะแอปพลิเคชันอื่น ๆ และแถบสีหรือคุณลักษณะคำอธิบายอื่น ๆ ที่อธิบายข้อมูล ใกล้ที่ฉันบอกได้ทั้งหมดนี้ดูเหมือนจะไม่สามารถทำได้กับ OpenLayers

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

  1. ผู้ใช้โดยใช้เลเยอร์ฐานเป็นแนวทางนำทางไปยังพื้นที่ที่ตนสนใจ
  2. ผู้ใช้เลือกพารามิเตอร์สภาพภูมิอากาศ (เช่นค่าเฉลี่ยอุณหภูมิสำหรับยุค 2040) หรือชุดของพารามิเตอร์
  3. ผู้ใช้กดปุ่ม "ส่งออก" จากนั้นดาวน์โหลดแผนที่คุณภาพดีซึ่งรวมองค์ประกอบทั้งหมดที่อธิบายไว้ในย่อหน้าแรก

ฉันไม่พบสิ่งใดใน OpenLayers เกี่ยวกับการแสดงภาพ ไม่มีใครรู้ว่าสิ่งนี้เป็นไปได้? และหากไม่ใช่วิธีการอื่นในการเรนเดอร์เราจะทำอย่างไร ฉันคิดว่าเราจะต้องผ่านพารามิเตอร์แผนที่ทั้งหมด (bbox, การฉาย, ชั้นรวม ฯลฯ ) ออกไปยังเครื่องมือการสร้างภาพภายนอก เอ็นจินการเรนเดอร์โอเพนซอร์สอะไรที่อยู่ข้างนอก


ฉันใช้การส่งออกเป็น png / pdf และพิมพ์แผนที่ openlayers ที่นี่ที่ www.mapsdata.co คุณสามารถลงทะเบียนและตรวจสอบ
Rayiez

คำตอบ:


12

วิธีหลักในการแสดงแผนที่พิมพ์สวย ๆ จาก openlayers ที่ฉันรู้จักคือ:

-Geoserver พร้อม Geoext

ปลาแมปกับ Geoext

โซลูชันทั้งสองพึ่งพาส่วนของ Java (เช่นhttp://geoserver.org/display/GEOS/Printing+in+GeoServerหรือhttp://www.mapfish.org/doc/print/ )

-Openlayers สแตนด์อโลน (ดู doc อย่างเป็นทางการที่http://trac.openlayers.org/wiki/Printing )

เมื่อเร็ว ๆ นี้เทคนิคการแสดงภาพด้วย PhantomJS (ซอฟต์แวร์จำลองเบราว์เซอร์จากบรรทัดคำสั่ง) http://acuriousanimal.com/blog/2012/09/17/creating-static-maps-in-openlayers-using-phantomjs/

ห้องสมุดล่าสุดบางแห่งใช้ความสามารถในการเรนเดอร์ Canvas ในการเบราว์เซอร์เพื่อ "จับ" ภาพเช่นOpenLayers 3 ตัวอย่างหรือหนึ่งในแผ่นพับนี้


5

คิดว่าคุณจะต้องค้นหา Geoserver เพื่อสร้างบริการ WFS หรือ WMS หรือ WMST http://geoserver.org/display/GEOS/What+is+Geoserver

จากนั้น Openlayers สามารถแยกวิเคราะห์บริการ Geoserver

http://openlayers.org/dev/examples/getfeature-wfs.html

WMTS (บริการทำแผนที่เว็บ) http://openlayers.org/dev/examples/wmts.html


2

ในการรับ "คุณภาพการเผยแพร่" คุณต้องการ 300dpi ดังนั้นการใช้แผนที่ที่คุณส่งผ่านไปยังเลเยอร์แบบเปิดสำหรับการแสดงผลหน้าจออาจไม่ใช่แบบเริ่มต้น

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


"คุณภาพสิ่งพิมพ์" น่าจะหมายถึง svg หรือรูปแบบเวกเตอร์อื่น ๆ และเมื่อฉันใส่มันลงไปในคำเหล่านั้นมันทำให้ฉันคิดว่าใช่เราอาจต้องการใช้ Mapnik หรือบางสิ่งบางอย่างเพื่อสร้างแผนที่ฐานจากไฟล์ planet.osm จากนั้นเราสามารถใช้ไลบรารีรูปภาพเพื่อวางซ้อนองค์ประกอบอื่น ๆ (แรสเตอร์สภาพภูมิอากาศองค์ประกอบตำนานคุณลักษณะ) คุณพูดถูกว่า Gmaps น่าจะเป็นของผู้ส่งออก (ด้วยเหตุผลทางเทคนิคและไม่ใช่ด้านเทคนิค) อย่างไรก็ตามขอขอบคุณสำหรับคำตอบทั้งหมด
Hiebert
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.