วิธีสร้างเครื่องหมายคลัสเตอร์เคลื่อนไหวใน OpenLayers / Leaflet


19

ฉันต้องการใช้ Leaflet เนื่องจากการเปลี่ยนที่ราบรื่นซึ่ง Openlayers ดูเหมือนว่าพวกเขาไม่สามารถจับคู่ได้ ฉันต้องการความสามารถในการจัดกลุ่มเครื่องหมายด้วยกลุ่มเครื่องหมายสไตล์ที่กำหนดเองโดยเฉพาะ

ตัวอย่างที่ดีที่สุดซึ่งแสดงให้เห็นถึงสิ่งที่ฉันกำลังพยายามที่จะบรรลุสามารถพบได้ที่Redfin

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

ฉันชอบที่จะรวมเอฟเฟกต์ที่คล้ายกันเข้ากับสิ่งเหล่านี้และจะขอบคุณคำแนะนำเกี่ยวกับวิธีการที่ดีที่สุดหรือตัวอย่างอื่น ๆ ที่คุณอาจจะทราบ

หมายเหตุ: Redfin ดูเหมือนว่าจะใช้แฟลชที่ฉันต้องการอยู่ห่างจาก ในสถานการณ์ที่ดีที่สุดฉันต้องการบรรลุสิ่งนี้ผ่าน Javascript หากเป็นไปได้ แต่คิดว่าอาจต้องทำผ่าน HTML5 / canvas

บางทีการใช้ p - Raphael.js หรือ d3.js

ความคิดใด ๆ

BTW - พบตัวอย่างนี้แต่ดูเหมือนจะใช้กับ Google แผนที่โดยเฉพาะ


ฉันไม่คิดว่า Redfin กำลังใช้แฟลช ดูเหมือนว่าจะเป็นจาวาสคริปต์ทั้งหมดโดยใช้ชุดเครื่องมือ dojo ( dojotoolkit.org ) ฉันไม่ได้เห็นไลบรารี่การแม็พอื่น ๆ - พวกเขาก็สามารถใช้ไลบรารี่ได้เช่นกัน
djq

ขณะนี้ฉันกำลังพัฒนาเลเยอร์ของ Leaflet clustering - github.com/cavis/leafpileมันยังไม่ได้ทำอะไรแฟนซี แต่ฉันวางแผนที่จะเพิ่มสิ่งต่าง ๆ เช่นภาพเครื่องหมายที่ปรับแต่งได้และกลยุทธ์การเปลี่ยนซูม โปรดเพิ่มคำขอการปรับปรุงไปยังตัวติดตามปัญหา
cavis

คำตอบ:


22

หากคุณต้องการให้คลัสเตอร์เหมือน Redfin ให้ดูที่ Leaflet.markercluster ของฉัน: https://github.com/Leaflet/Leaflet.markercluster/blob/master/example/marker-clustering-realworld.388.html

https://github.com/danzel/Leaflet.markercluster

มันเป็นแอนิเมชั่นเต็มรูปแบบ ฯลฯ ฯลฯ :)


3
Yup - ดีที่สุดและให้ฉันเป็นคนแรกที่ต้อนรับคุณ Dave และให้ฉันเพิ่มคะแนนของคุณสำหรับความช่วยเหลือของคุณ
NetConstructor.com

1
น่ากลัวมาก! +1
unicoletti

6

OpenLayers ยังมีกลยุทธ์คลัสเตอร์ สิ่งที่คุณต้องทำคือระบุกลยุทธ์ในเลเยอร์เวกเตอร์

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

The redfin เป็นตัวอย่างแฟชั่นจริง ๆ หวังว่าฉันจะมีเวลาทดสอบ OL :)


ฉันต้องการใช้ OpenLayers แต่ฉันต้องการการเปลี่ยนที่ราบรื่นเหมือนที่พบในแผ่นพับ คุณรู้หรือไม่ว่ามีแฮ็ค openlayers ซึ่งจำลองภาพเคลื่อนไหวแบบซูมเรียบเหล่านี้?
NetConstructor.com

ขออภัย แต่ไม่ใช่ ตอนนี้ฉันกำลังทำการทดสอบสไตล์ "จุด" เพิ่มสีและจำนวนนับในวงกลม แต่การเพิ่มอนิเมชั่นนั้นยังห่างไกล
EricSonaron

คุณเคยพบวิธีแก้ปัญหานี้ด้วยความสามารถ ol3 ใหม่หรือไม่?
NetConstructor.com

3

ฉันไม่มีเวลามากพอที่จะตรวจสอบ แต่ CloudMade (ผู้ผลิต Leaflet) มีความสามารถในการทำคลัสเตอร์มาร์กเกอร์ วิธีทำให้พวกเขามีชีวิตชีวาและโฉบเฉี่ยวไม่แน่ใจเกี่ยวกับสิ่งนั้น แต่เป็นการเริ่มต้น

http://developers.cloudmade.com/projects/web-maps-api/examples/marker-clustering



3

ฉันเพิ่งใช้กลยุทธ์ AnimatedCluster สำหรับ OpenLayers คุณสามารถดูข้อมูลเพิ่มเติมได้ที่: http://www.acuriousanimal.com/2012/08/19/animated-marker-cluster-strategy-for-openlayers.html

มันเป็นเพียงรุ่น firts แต่เพิ่มภาพเคลื่อนไหวที่ดีให้กับกลุ่ม มีหลายสิ่งที่ต้องปรับปรุง แต่มันเป็นจุดเริ่มต้น


ทำได้ดีมากด้วยสิ่งนี้!
NetConstructor.com

1

คุณเคยดูตัวอย่างpolymapsที่กลุ่มชี้?

วงกลมที่นี่คือเวกเตอร์ซึ่งสามารถแก้ไขได้โดยใช้ CSS


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