OpenLayers vs Google Maps? [ปิด]


169

ฉันได้ใช้ Google แผนที่สองสามครั้ง แต่สิ่งที่สงสัยเกี่ยวกับOpenLayers
ก่อนที่จะเริ่มการเข้ารหัสประเภทใด ๆ ต่อไปนี้เป็นคำถามสองสามข้อที่อยู่ในใจของฉัน

  • ทำไมฉันถึงต้องใช้ OpenLayers แทน Google Maps?
    • ยกเว้นสิทธิ์การใช้งาน OSS
    • คุณประสบกับสถานการณ์ที่คุณไม่แนะนำให้ใช้ OpenLayers หรือไม่?
    • ผมค้นหาเกี่ยวกับ "OpenLayers" ในกองมากเกิน ; ไม่มีคำตอบมากมาย มันหมายถึงการแก้ปัญหานี้ไม่ได้ใช้มาก? มันอาจเป็นปัญหาสำหรับความอยู่รอดในระยะยาวของโครงการหรือไม่?
  • สำหรับผู้ที่เคยใช้ OpenLayers อยู่แล้ว: มีข้อผิดพลาดหรือปัญหาที่ฉันพบบ่อยไหม?
    • แล้วการใช้ JavaScript Framework กับมันล่ะ? ฉันเห็นว่ามันใช้Prototypeและฉันรู้จัก Prototype ดังนั้นมันก็ใช้ได้ แต่สิ่งที่เกี่ยวกับการใช้อย่างอื่นเช่นMooTools ? (ซึ่งเข้ากันไม่ได้กับ Prototype, BTW)
    • มีปัญหาเกี่ยวกับความเร็วและประสิทธิภาพหรือไม่? ฉันต้องการใบสมัครของฉันที่จะตอบสนองและไม่สามารถรอชั่วโมงเพื่อให้แผนที่แสดง
  • มีแผนที่สำหรับหลาย ๆ ที่หรือว่ามีหลายที่ที่หายไป?
    • นั่นคือฉันอยู่ในฝรั่งเศสและต้องการใบสมัครเพื่อทำงานอย่างน้อยในเมืองใหญ่ ... นั่นจะโอเคไหม
    • ถ้าไม่ใช่มันง่ายหรือไม่ที่จะหาเลเยอร์และภาพสำหรับ OpenLayers และรวมเข้าด้วยกัน?
  • API ประเภทใดที่จะแสดงถนน
    • ตัวอย่างเช่นเพื่อแสดงถนนที่เป็นทางเดียวเท่านั้น
    • ถ้าใช่ฉันจะทำอย่างไร ฉันต้องมีไฟล์บางประเภทที่มีข้อมูลถนนเหล่านั้นแล้วแสดงมันด้วยตัวเองบนแผนที่หรือไม่?
  • คุณรู้หรือไม่ว่าบทช่วยสอนที่ดีสำหรับ OpenLayers?

ฉันยังไม่ได้ลองเลยคำถามเหล่านี้เป็นคำถามสีน้ำเงิน ...


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

7
@Mark มีปัญหากับใบอนุญาตของ Google IANAL แต่ฉันเข้าใจว่าการแสดงข้อมูลบน Google Maps ให้สิทธิ์การใช้งานแบบไม่ จำกัด แก่ Google ในการคัดลอกแก้ไขแปลงและแจกจ่ายข้อมูลของคุณใหม่ เช่นเป็นสิ่งผิดกฎหมายในการแสดงข้อมูลใด ๆ ที่ได้จากผลิตภัณฑ์อาวุธยุทโธปกรณ์สำรวจ GIS ของสหราชอาณาจักรบน Google Maps ข้อดีอีกประการของ OSS ก็คือ OpenLayers ไม่ได้อยู่ภายใต้ความตั้งใจขององค์กรใดองค์กรหนึ่ง แม้ว่าในทางปฏิบัติคุณอาจเชื่อถือได้ในแง่ดีของ Google (และเงินและเหตุผลทางธุรกิจ) เพื่อสนับสนุน Google แผนที่ในอนาคต
MarkJ

1
บทความเหล่านี้อาจจะมีบางส่วนที่ใช้: EveryBlock - เกี่ยวกับแผนที่ของเรา: blog.everyblock.com/2008/feb/18/mapsรายการ Apart - ใช้การควบคุมของแผนที่ของคุณ (ยังมาจาก EveryBlock) alistapart.com/articles/takecontrolofyourmaps
mg1075

8
Google แผนที่ไม่ได้ให้บริการฟรีทั้งหมด ( google.com/support/forum/p/maps/… ) ใบอนุญาตขึ้นอยู่กับวิธีการใช้งานของคุณ
Mo.

เป็นมูลค่าการตรวจสอบเว็บไซต์ GIS.SE สำหรับทุกสิ่งภูมิศาสตร์ถ้าคุณไม่สามารถหาคำตอบใน SO
รอย

คำตอบ:


158

นี่เป็นคำถามที่ยอดเยี่ยมจริงๆ! ฉันเป็นนักพัฒนาและแฟน OpenLayers มืออาชีพดังนั้นฉันจะตอบคำถามของคุณจากมุมมองนั้น

ทำไมฉันถึงต้องใช้ OpenLayers แทน Google Maps?

  • ความยืดหยุ่น: คุณไม่ได้เชื่อมโยงกับผู้ให้บริการแผนที่หรือเทคโนโลยีเฉพาะ คุณสามารถเปลี่ยนแปลงได้ตลอดเวลาและไม่จำเป็นต้องเขียนรหัสใหม่ทั้งหมด Google, Yahoo, Microsoft, WMS, เซิร์ฟเวอร์ ArcGIS, MapServer และอื่น ๆ ทั้งหมดได้รับการสนับสนุนจากกล่อง
  • การสนับสนุนเวกเตอร์: การสนับสนุนที่ดีกว่าสำหรับคะแนนโพลีนและรูปหลายเหลี่ยม
  • การควบคุม: คุณมีความสามารถในการเพิ่มคุณสมบัติใหม่ที่คุณอาจต้องการ ฉันเขียนปลั๊กอินสามตัวสำหรับ OpenLayers โดยที่สองตัวนั้นเป็นหรือจะเป็นส่วนหนึ่งของซอร์ส
  • การดีบัก: การดีบักง่ายขึ้นมากเมื่อคุณสามารถก้าวผ่านซอร์สโค้ด!

ฉันจะไม่กังวลเลยเกี่ยวกับความเป็นไปได้ในระยะยาวของโครงการ เป็นไลบรารีการแมปฝั่งไคลเอ็นต์แบบโอเพ่นซอร์สชั้นนำ

มีข้อผิดพลาด / ปัญหาทั่วไปที่ฉันอาจพบหรือไม่

  • ข้อผิดพลาดที่ใหญ่ที่สุดที่ฉันพบคือการทำงานกับการคาดการณ์ของ Web Mercator (Google) อาจเป็นความเจ็บปวดในการแสดงข้อมูลเวกเตอร์ที่อยู่ในการฉายภาพทั่วไปและเหมือนจริงเช่นWGS 84ลงในแผนที่ OpenLayers โดยใช้ Google, Yahoo และ Microsoft base maps ตัวอย่างคือเพื่อนของคุณ

ความเข้ากันได้ของ JavaScript Framework

  • ฉันใช้ jQuery framework สำหรับงานทั้งหมดของฉันและปัญหาเดียวที่ฉันมีคือการอ้างอิง jQuery หลังจาก OpenLayers นอกจากนั้นการแล่นเรือใบราบรื่น
  • ประสิทธิภาพดีมาก! ปัญหาเฉพาะกับเซิร์ฟเวอร์แผนที่ของคุณหรือเพิ่มเวกเตอร์จำนวนมากเกินไปในแผนที่ของคุณ

มีแผนที่สำหรับหลาย ๆ ที่ไหม?

  • อย่างที่ฉันพูดคุณสามารถใช้แผนที่จากแหล่งใดก็ได้ในโลก

API ประเภทใดที่จะแสดงถนน

  • ฉันจะตรวจสอบ CloudMade! The ได้แปลงโครงการOpenStreetMapเป็นบริการแผนที่ย่อยและอนุญาตให้กำหนดสไตล์เอง ฉันเชื่อว่าคุณสามารถกำหนดสไตล์ถนนเดินรถทางเดียว (ตามตัวอย่างของคุณ) ได้ CloudMade ผู้พัฒนาโซน

คุณรู้หรือไม่ว่าบทช่วยสอนที่ดีสำหรับ OpenLayers?

  • ฉันไม่ทราบบทช่วยสอนใด ๆ แต่มีตัวอย่างมากมายในตัวอย่างของOpenLayers

ฉันหวังว่านี่จะเป็นประโยชน์ และฉันอยู่แถว ๆ กองมากเกินถ้าคุณมีคำถาม


5
Hi! ขอบคุณมากสำหรับคำตอบนี้มีประโยชน์จริง ๆ ! มีบางจุดที่น่าสนใจ (การสนับสนุนเวกเตอร์ที่ดีกว่าอาจเป็นประโยชน์สำหรับโครงการที่ฉันกำลังคิดอยู่และไม่ใช่สิ่งเดียวที่คุณพูดนั่นน่าสนใจ!); บางทีฉันอาจจะถามคำถามอื่น ๆ ในบางครั้ง: ฉันยังไม่ได้เริ่มทำงานกับ OL เลย (คำถามนี้เป็นคำถามที่ "prelimar" หนึ่งครั้ง ^^) แต่เวลาจะมาฉันคิดว่าเมื่อพิจารณาคำตอบที่ฉันได้รับ!
Pascal MARTIN

5
+1 ฉันพยายามไม่พิมพ์ความคิดเห็นนี้ แต่ฉันไม่สามารถช่วยตัวเองได้ WGS84 ไม่ใช่การฉายภาพ (มันคุ้มค่าที่จะเรียนรู้สิ่งนี้ - ฉันหยิบ GIS ขึ้นมาอย่างเจ็บปวดและมันช่วยเรื่องแผนที่ได้จริงๆ)
MarkJ

1
WGS84 เป็นระบบพิกัดทางภูมิศาสตร์ (ใช้เพื่อแสดงจุดละติจูด / ลองจิจูดบนจุดไข่ปลา) Web Mercator เป็นเว็บโปรเจคชันที่ดีมาก
รอย

35

มันไม่จำเป็นต้องเป็นคำถามของ OpenLayers หรือ Google Maps คุณสามารถใช้ Google แผนที่สำหรับพื้นหลังแผนที่ทั้งหมดใน OpenLayers บางคำตอบที่เฉพาะเจาะจงมากขึ้น:

ทำไมต้องเป็น OpenLayers

  • OpenLayers สามารถรวมแผนที่จากแหล่งต่าง ๆ (พื้นหลังของ Google Maps, WMS ภาพซ้อนทับ, ข้อมูลเวกเตอร์จากไฟล์ KML หรือ GML หรือ WFS เป็นต้น)
  • คุณสามารถจัดสไตล์ OpenLayers ได้มากกว่า Google แผนที่
  • โอเพ่นซอร์สคุณสามารถตรวจสอบซอร์สโค้ดเมื่อทำการดีบั๊ก
  • หากคุณต้องการความแม่นยำสูงในแผนที่ให้ใช้ OpenLayers กับแบ็กเอนด์เซิร์ฟเวอร์แผนที่ที่เหมาะสมแทน Google Maps เพื่อให้ได้ภาพแผนที่ที่ดีกว่า (Google Maps ถือว่าโลกเป็นทรงกลมสมบูรณ์แบบ)

ผิดพลาด

  • หากคุณต้องการใช้ข้อมูลเวกเตอร์ (WFS) จากเซิร์ฟเวอร์อื่นคุณต้องใช้พร็อกซีเนื่องจากข้อ จำกัด การเขียนสคริปต์ข้ามไซต์

ประสิทธิภาพ

  • ขึ้นอยู่กับความเร็วของแบ็กเอนด์แผนที่เป็นหลัก
  • การแสดงคุณสมบัติเวกเตอร์มากมาย (ขึ้นอยู่กับขีด จำกัด ของเบราว์เซอร์ แต่พูดว่า> 200 ต่อการดูหนึ่งครั้ง) ใช้เวลา แต่นั่นเป็นสิ่งที่เบราว์เซอร์มากกว่าปัญหาของ OpenLayers

เฟรมเวิร์ก JavaScript

  • ดูที่GeoExtซึ่งเป็น ExtJS + OpenLayers

แผนที่ที่มี

  • OpenLayers ไม่มีแบ็กเอนด์แผนที่ คุณสามารถใช้ Google Maps, Yahoo Maps, MS Virtual Earth ฯลฯ หรือบริการ WMS และ WFS ใด ๆ ที่คุณสามารถเข้าถึงได้

คำตอบที่ดี; ขอบคุณสำหรับข้อมูลทั้งหมดนี้! ฉันยังไม่ทราบรายละเอียด แต่ฉันอาจต้องใช้ข้อมูลบางอย่างจากเซิร์ฟเวอร์ของตัวเองดังนั้นทุกอย่างก็โอเคโดยเฉพาะอย่างยิ่งกับความสามารถในการรวมแบ็กเอนด์หลายแบ็กเอนด์ (ถ้าฉันเข้าใจถูกต้อง ^^ ฉันจะมีโอกาสทดสอบ ในสองสามวันฉันหวัง ;-))
Pascal MARTIN

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

หากมีสิ่งใดที่คุณต้องการทำซึ่งไม่ได้กล่าวถึงในหน้าตัวอย่างของ dev คุณอาจไม่สามารถทำได้บน Google แผนที่ ตัวอย่างเช่นแม้แต่การเขียนสคริปต์ข้ามไซต์ก็ไม่จำเป็นต้องครอบคลุมโดยพร็อกซี: openlayers.org/dev/examples/cross-origin.html
Glenn Plas

23

ฉันไม่ได้เห็นสถานะของผู้ใช้ OpenLayers ใน SO มากนัก แต่พวกเขาก็อยู่ที่นั่น OpenLayers รายชื่อผู้รับจดหมายจะสวยที่ใช้งาน (ฉันผู้ใช้และDevและดูได้ทุกที่ 50-100 อีเมลวันอภิปรายสิ่งต่างๆ. คุณสามารถค้นหารายชื่อจากการเชื่อมโยงเหล่านั้นเกินไป.)

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


ขอบคุณสำหรับคำตอบ! มันดีที่เห็นว่ารายการ mailling ค่อนข้างใช้งานได้ก่อนที่จะเริ่มทำงานกับโปรเจ็กต์ ^^
Pascal MARTIN

13

จุดหนึ่งที่ยังไม่ได้ทำอย่างเต็มที่คือการใช้ OpenLayers เพื่อหลีกเลี่ยงข้อ จำกัด ต่างๆที่ Google วางไว้ในข้อกำหนดในการให้บริการสำหรับ API ของแผนที่ซึ่งรวมถึง:

  • คุณไม่สามารถใช้แผนที่ของ Google อย่างถูกกฎหมายในส่วนของเว็บไซต์ของคุณที่ต้องการการชำระเงินเพื่อเข้าถึงหรือสำหรับเว็บไซต์ส่วนตัวที่สาธารณะไม่สามารถลงทะเบียนได้ (เช่นอินทราเน็ตขององค์กร) (IANAL แต่ดูข้อกำหนดในการให้บริการ 9.1และคำถามที่พบบ่อย )

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

  • Google ขอสงวนสิทธิ์ในการปิดการเข้าถึง API หากคุณแสดงแผนที่พร้อมเนื้อหาที่น่ารังเกียจ ตัวอย่างที่ให้ไว้ในคำถามที่พบบ่อยคือแผนที่ยาเสพติดที่ผิดกฎหมายซึ่งให้ความรู้สึกที่ดีเกี่ยวกับพื้นที่สีเทาข้อ จำกัด นี้อาจครอบคลุม

ดูคำถามที่พบบ่อยนี้และข้อกำหนดในการให้บริการสำหรับรายละเอียดเพิ่มเติม

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


"คุณไม่สามารถใช้ Google แผนที่อย่างถูกกฎหมายในส่วนของเว็บไซต์ของคุณที่ต้องการการชำระเงินเพื่อเข้าถึงหรือสำหรับเว็บไซต์ส่วนตัวที่สาธารณะไม่สามารถลงทะเบียนได้ (เช่นอินทราเน็ตขององค์กร)" มันไม่ถูกต้อง คุณสามารถใช้ Google Maps ในส่วนที่ชำระเงินของไซต์ของคุณตราบใดที่ผู้ใช้ส่วนใหญ่เข้ามาใช้เว็บไซต์และแผนที่ของคุณโดยไม่ต้องจ่ายเงิน เช่นเว็บไซต์อสังหาริมทรัพย์ ผู้โพสต์ต้องจ่ายเงินเพื่อแสดงรายการบ้านของพวกเขา แต่ผู้ใช้ส่วนใหญ่เข้าชมเว็บไซต์โดยไม่ต้องจ่ายเงิน ในกรณีนี้ทั้งคู่สามารถเข้าถึง Google แผนที่ได้
Craig

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

OpenLayers ใช้ Google Maps API ภายในเพื่อให้คุณอยู่ภายใต้ใบอนุญาตเดียวกัน osgeo-org.1560.x6.nabble.com/…
Alfredo Osorio

@AlfredoOsorio - ใช่ IFF คุณใช้เลเยอร์ของ Google มีแหล่งที่มาของกระเบื้องอื่น ๆ มากมาย
nrabinowitz

12

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

OpenLayers มีตัวอย่างมากมายให้คุณเริ่มต้น

สำหรับแผนที่ OpenLayers เป็นเพียง API ดังนั้นคุณจำเป็นต้องระบุว่าจะทำการเลเยอร์แผนที่ Google Maps API จะ จำกัด เฉพาะเลเยอร์แผนที่ที่จัดทำโดย google ด้วย OpenLayer คุณสามารถแสดงบริการแผนที่สาธารณะที่มีอยู่ (WMS, WFS, TMS, WMS-C) ตัวอย่างที่ดีมากคือ openstreetmap.org - (แผนที่ถนนทั่วโลกที่รวบรวมโดยชุมชน) สามารถเพิ่ม OSM ให้กับ openlayers เป็นเลเยอร์ TMS ลองดูตัวอย่างสำหรับคำแนะนำ


Hi! ดูเหมือนว่า "ฉันเป็น" คำตอบแรกของคุณที่นี่! ยินดีต้อนรับ! และขอบคุณสำหรับคำตอบของคุณ :-)
Pascal MARTIN

9

ลูกค้าบางคนอาจปฏิเสธหรือจองที่ดีเกี่ยวกับการใช้ Google Maps พวกเขาอาจมีข้อกังวลที่ถูกต้องว่า Google อาจแนะนำการโฆษณาหรือเปลี่ยนแปลง API โดยไม่ต้องแจ้งให้ทราบล่วงหน้า อย่างไรก็ตาม Google Maps มีข้อดีของการรวมเข้ากับบริการอื่น ๆ ของ Google (เครื่องหมายบอกตำแหน่ง, การเพิ่มรูปภาพ, บริการ Geocoding) เนื่องจากเป็นเว็บคุณจึงสามารถรวมบริการทำแผนที่และ API ที่แตกต่างกันได้เสมอ


1
+1 ฉันมีลูกค้าบางคนเช่นนั้น และฉันไม่ได้พูดว่าพวกเขาผิด ครั้งสุดท้ายที่ฉันดูเงื่อนไขการให้สิทธิ์ใช้งาน Google แผนที่ทำให้ Google สามารถแนะนำการโฆษณาลงในแผนที่ได้ทุกเมื่อที่ต้องการ
MarkJ

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

9

ฉันเห็นด้วยกับคำตอบทั้งหมด แต่มีจุดสำคัญอย่างหนึ่งที่ไม่มีใครพูดถึง OpenLayers และ Google Maps มีเป้าหมายแตกต่างกัน

OpenLayer เป็นเฟรมเวิร์กที่ยอดเยี่ยมในการแสดงตำแหน่งทางภูมิศาสตร์ แต่ Google Maps เป็นกลุ่มของบริการที่มีกรอบเพื่อแสดงตำแหน่งทางภูมิศาสตร์ในบริการอื่น ๆ

ดังนั้น Google Maps จึงมีบริการและคุณสมบัติมากมายที่ OpenLayes ไม่มี ตัวอย่างของคุณสมบัติและบริการของ Google Maps คือการแปลภูมิภาค, การตรวจจับเซ็นเซอร์ (สำหรับอุปกรณ์ที่มี GPS) และการแปลของผู้ใช้, การเข้ารหัสทางภูมิศาสตร์และการเข้ารหัสทางภูมิศาสตร์แบบย้อนกลับ, มุมมองถนน ฯลฯ


6

ฉันใช้ทั้งสอง API ฉันสร้างซอฟต์แวร์สำหรับองค์กรและซอฟต์แวร์นี้ต้องการการแมป แต่ไม่ใช่ลูกค้าทั้งหมดที่มีใบอนุญาต GoogleMaps ดังนั้นฉันจึงต้องสนับสนุนแผนที่ทั้งสองประเภท

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

  1. OpenLayers รองรับแผนที่ออฟไลน์ ผู้ใช้ของฉันบางคนอยู่ในอินทราเน็ตส่วนตัวโดยไม่ต้องเชื่อมต่ออินเทอร์เน็ต

  2. GoogleMaps มีสองสิ่งที่ต้องมีอย่างแน่นอนคือMarkCluster และSpiderfierซึ่งทำให้สามารถมองเห็นเครื่องหมายจำนวนมหาศาลได้

  3. GoogleMaps InfoWindows นั้นใช้งานง่ายกว่าและใช้งานได้ดีกว่า OpenLayers.Popups นี่เป็นหน้าต่างเล็ก ๆ ที่สามารถเปิดได้เมื่อคุณคลิกที่เครื่องหมาย Googlemaps InfoWindows นั้นมีความสวยงามมากกว่าโดยปริยายคุณต้องทำ CSS wizardry กับป๊อปอัป

  4. GoogleMaps มีสตรีทวิวซึ่งบางครั้งก็มีประโยชน์

  5. GoogleMaps มีคุณสมบัติเพิ่มเติมที่คุณอาจต้องการ แม้ว่าคุณสมบัติหลายอย่างจะมีอยู่ใน OpenLayers เช่นกัน แต่ไม่รองรับอย่างเป็นทางการ

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

นอกจากนี้ GoogleMaps ยังมีประเภทตำแหน่งทางภูมิศาสตร์พื้นฐานเป็น 'LatLng' และ Openlayers ใช้ 'LonLat' ซึ่งทำให้ฉันบ้าถั่วเพราะฉันยังคงเข้าใจผิดลำดับของพารามิเตอร์ในการเรียกใช้ฟังก์ชัน


3

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

ใน Google คุณสามารถสร้าง GOverlay ที่กำหนดเองซึ่งเนื้อหาคือ "div" ซึ่งแสดงผลโดยไม่มีปัญหาใน IE


3

สองสิ่งที่ฉันจะเพิ่มจากสองมุมมองคือการใช้งานไคลเอนต์และข้อมูลที่ทวีความรุนแรงขึ้น

การใช้งานของลูกค้า:

  • ลูกค้าของคุณเคยใช้อะไรในปัจจุบัน? การเปลี่ยนแปลงอาจเป็นเรื่องยาก
  • คุณต้องการฟังก์ชั่นเท่าไหร่จริงเหรอ? OpenLayers มีค่อนข้างน้อย แต่ถ้าคุณไม่ได้ใช้มัน ...

การให้บริการข้อมูล:

  • คุณให้บริการข้อมูลKMLหรือไม่ ถ้าเป็นเช่นนั้นทั้ง OpenLayers และ Google Maps จะทำงานร่วมกับมันและคุณอาจต้องตัดสินใจตามการใช้งานของลูกค้า

  • คุณให้บริการข้อมูลประเภทอื่นหรือไม่? (WMS, WFS, CSV, ฯลฯ ) ถ้าเป็นเช่นนั้น OpenLayers น่าจะมีตัวอย่างและการสนับสนุน


2

OL มีฐานแฟนคลับขนาดใหญ่และบางทีอาจเป็นโอเพนซอร์ซที่ใช้มากที่สุดในโลก

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

อย่างไรก็ตาม Ol มีข้อบกพร่องบางอย่างส่วนใหญ่เป็นระดับที่ต่ำมากที่คุณต้องเขียนโค้ดจำนวนมากเพื่อทำ ops ทั่วไป ที่สามารถทำงานได้ในทางที่ดีเช่นกันเพราะในฐานะนักพัฒนา: คุณมีรหัสล่วงหน้าทั้งหมดและ b: การปรับแต่งและการปรับแต่งนั้นง่ายมาก

มี geotools ฟรีที่มีความซับซ้อนมากขึ้น แต่สิ่งที่พวกเขาทำคือเรียก openlayers และสรุปงานที่น่าเบื่อมากขึ้น

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

ขอให้มีความสุขมาก ๆ ในวันนี้นะ


สวัสดีคุณช่วยอธิบายเกี่ยวกับ "geotools ฟรีที่มีความซับซ้อนมากขึ้น" ที่อยู่บน OpenLayers ได้หรือไม่? GeoExt ถูกกล่าวถึงข้างต้น แต่ฉันยังไม่เห็นคนอื่นระบุ ขอบคุณ
Brian B

@BrianB สวัสดี brian แน่นอนฉันคิดเกี่ยวกับ geoext เมื่อฉันเขียน "geotools ฟรีที่ซับซ้อนยิ่งขึ้น" ไลบรารีนั้นรวม EXTJS ด้วย openlayers
demonz demonz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.