Google Maps Javascript API/HTML5 expert?

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2010

Google Maps Javascript API/HTML5 expert?

Jag har sittat och petat med Google Maps ett tag nu. Jag behöver visa en extrem mängd markörer på kartan mer eller mindre samtidigt (jag är inte intresserad av klusterkomponenter) och prestandan räcker inte till med den inbyggda funktionaliteten (så vitt jag kan få till iallafall).
Jag har testat ett "nytt" sätt att rita markörer, över kartan lägger jag en html5-canvas och ritar manuellt mina markörer (fyllda cirklar för tillfälligt) istället direkt på den. Det funkar egentligen grymt bra prestandamässigt, men "markörerna" släpar något och hänger inte med när jag panorerar runt, man får lite sjösjuk-tendenser att titta på det.
Jag har testat en massa varianter av double-buffering tekniker men det hjälper inte med släpningen och jag tror inte datorprestanda är problemet heller.
Jag ritar mina markörer från google-maps eventet "bounds_changed". Jag har även testat lagt min markör-ritning utanför googlemaps eventet och bara "ritar hela tiden" så att säga men får fortfarande släpningar.

Vanliga Google markörer släpar inte på kartan utan sitter verkligen "fast" när man panorerar runt. Jag testade rita mina canvas5-markörer från en markörs draw() event istället, bara för att testa ifall det skulle skilja sig på nått sätt från "bounds-changed", men även där får jag släpningar.
Så jag är egentligen på jakt efter tips här, nån som kan tänkas vad problemet handlar om?
Oerhört tacksam för tips.

Dator: MB: Gigabyte Z390 M GAMING mATX | CPU: Intel Core i9 9900K 3.6 GHz (Haswell) | RAM: Corsair 16GB (KIT) 3200Mhz Vengeance LPX | Grafikkort: ASUS Geforce GTX1050TI 4GB Cerberus | Chassi: Fractal Design Mini | PSU: Corsair RM750X 750W v2 | Optisk: ASUS BW-12B1ST Blu-Ray/DVD brännare | CPU-kylare: Noctua NH-U12S | Operativ: Windows 10
Övrigt: Nintendo Switch, NES Mini, SNES Mini, Nintendo New 3DS, NES, Famicom AV, Famicom Disk System, PS3, AppleTV 4K, Synology NAS DS918+ (12GBG), iPhoneXS 64GB, LG 55UH664V,

Trädvy Permalänk
Medlem
Registrerad
Jan 2004

Ta annars en titt på Leaflet. Se om deras gratistjänst funkar bättre än vad betaltjänsten från Google gör. Leaflet har nämligen också stöd för "klustermarkörer", som Leaflet for R visar. Annars kan du testa att lägga till en markör efter den andra med hjälp av L.Marker.

Citera mig om du vill att jag ska hitta till ditt svar.
Min blogg | Stolt användare av Kaspersky

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Dec 2003

@oRBIT2002:

Eftersläpningar är jobbiga för slutanvändaren. Om du gör så att efter exempelvis 10-200 ms (beroende på känslan) när man har slutat att panorera så presenterar du punkterna så kommer det inte upplevas som en eftersläpning. Dessutom kommer man få bättre översikt över kartan då punkterna inte grötar ner det vid själva panoreringen. Att punkterna visas praktiskt taget omedelbart gör att det kommer att upplevas som att det är meningen att fungera på det viset snarare än en begränsning i uppdateringsfrekvensen.

ηλί, ηλί, λαμά σαβαχθανί!?

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2010
Skrivet av Leedow:

@oRBIT2002:

Eftersläpningar är jobbiga för slutanvändaren. Om du gör så att efter exempelvis 10-200 ms (beroende på känslan) när man har slutat att panorera så presenterar du punkterna så kommer det inte upplevas som en eftersläpning. Dessutom kommer man få bättre översikt över kartan då punkterna inte grötar ner det vid själva panoreringen. Att punkterna visas praktiskt taget omedelbart gör att det kommer att upplevas som att det är meningen att fungera på det viset snarare än en begränsning i uppdateringsfrekvensen.

Så du föreslår att man gömmer alla markörer när man panorerar?

Meckade vidare igår kväll, verkar som det är muspekaren som uppdateras snabbare än skärmfrekvensen som ställer till det.

Skickades från m.sweclockers.com

Dator: MB: Gigabyte Z390 M GAMING mATX | CPU: Intel Core i9 9900K 3.6 GHz (Haswell) | RAM: Corsair 16GB (KIT) 3200Mhz Vengeance LPX | Grafikkort: ASUS Geforce GTX1050TI 4GB Cerberus | Chassi: Fractal Design Mini | PSU: Corsair RM750X 750W v2 | Optisk: ASUS BW-12B1ST Blu-Ray/DVD brännare | CPU-kylare: Noctua NH-U12S | Operativ: Windows 10
Övrigt: Nintendo Switch, NES Mini, SNES Mini, Nintendo New 3DS, NES, Famicom AV, Famicom Disk System, PS3, AppleTV 4K, Synology NAS DS918+ (12GBG), iPhoneXS 64GB, LG 55UH664V,

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Dec 2003

@oRBIT2002:

Ja, precis. En enklare lösning för att komma bort från uppdateringsproblemet i helhet även om det kanske inte är optimalt.

Om du testar med "drag"-eventet istället då? Panorerar man för snabbt så publiceras inte "bounds_changed"-eventet.

Testa här:

https://developers.google.com/maps/documentation/javascript/e...

ηλί, ηλί, λαμά σαβαχθανί!?

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2010

Jag har testat en mängd event, det hjälper inte.
Det verkar handla om att musen uppdateras mycket snabbare än skärmens 60hz så det verkar vara problemet. Styr jag min karta med piltangenterna istället för musen ser det perfekt ut. Det verkar finnas en del poster på google om folk som har liknande problem i andra situationer, vid t.ex. drag'n'drop, det man drar hänger inte med muspekaren.

Dator: MB: Gigabyte Z390 M GAMING mATX | CPU: Intel Core i9 9900K 3.6 GHz (Haswell) | RAM: Corsair 16GB (KIT) 3200Mhz Vengeance LPX | Grafikkort: ASUS Geforce GTX1050TI 4GB Cerberus | Chassi: Fractal Design Mini | PSU: Corsair RM750X 750W v2 | Optisk: ASUS BW-12B1ST Blu-Ray/DVD brännare | CPU-kylare: Noctua NH-U12S | Operativ: Windows 10
Övrigt: Nintendo Switch, NES Mini, SNES Mini, Nintendo New 3DS, NES, Famicom AV, Famicom Disk System, PS3, AppleTV 4K, Synology NAS DS918+ (12GBG), iPhoneXS 64GB, LG 55UH664V,

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2010

Har testat skrivit om detta en hel del men får fortfarande lagg, kolla på filmen. Markörerna släpar efter litegrann. Nån som har några riktigt bra idéer tro?
https://www.dropbox.com/s/4kxz4ojcwie4fl5/Dragging.mp4?dl=1

Dator: MB: Gigabyte Z390 M GAMING mATX | CPU: Intel Core i9 9900K 3.6 GHz (Haswell) | RAM: Corsair 16GB (KIT) 3200Mhz Vengeance LPX | Grafikkort: ASUS Geforce GTX1050TI 4GB Cerberus | Chassi: Fractal Design Mini | PSU: Corsair RM750X 750W v2 | Optisk: ASUS BW-12B1ST Blu-Ray/DVD brännare | CPU-kylare: Noctua NH-U12S | Operativ: Windows 10
Övrigt: Nintendo Switch, NES Mini, SNES Mini, Nintendo New 3DS, NES, Famicom AV, Famicom Disk System, PS3, AppleTV 4K, Synology NAS DS918+ (12GBG), iPhoneXS 64GB, LG 55UH664V,

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004
Skrivet av oRBIT2002:

Har testat skrivit om detta en hel del men får fortfarande lagg, kolla på filmen. Markörerna släpar efter litegrann. Nån som har några riktigt bra idéer tro?
https://www.dropbox.com/s/4kxz4ojcwie4fl5/Dragging.mp4?dl=1

Ingen bra idé men en workaround.
OM du på något sätt kan få kartan att lagga på samma sätt som markörerna samt att du gömmer muspekaren när scrollning sker kanske det kan bli godtagbart?