HNHacker News
TopNewBestAskShowJobs

efkv

252 karma · joined November 10, 2012

submissionscomments
efkv··on Denser 3D Point Clouds in OpenSfM
For those who have not tried it, OpenSfM is an amazing tool. Can't wait to play with dense reconstructions. Congrats mapillary team, I know this has been a long time coming!
efkv··on Show HN: Boids Simulation
Like everyone else it seems, I also wrote a 3D flocking simulation a while back: http://edkelleyv.com/Flocking/

Source: https://github.com/ekelleyv/Flocking

efkv··on High Performance Map Interactions Using HTML5 Canvas
Any chance we could get a screenshot of where you are seeing this? Or at least a venue/section? Thanks!
efkv··on High Performance Map Interactions Using HTML5 Canvas
No problem. It wouldn't be fun if it were easy!
efkv··on High Performance Map Interactions Using HTML5 Canvas
Thanks!

This has been an issue we have struggled with for a while. What you are suggesting is basically how Leaflet typically handles scroll events. The issue, however, primarily lies with the Apple trackpad. Basically the Apple trackpad "fakes" inertial scrolling. When using the base Leaflet implementation, we would zoom straight to the target zoom level (great), but then the tail end of the intertial zoom would force it to zoom once more (bad).

For a normal map of the world that has like 20 or 30 zoom levels, accidentally missing the target zoom by a level does not matter too much. However, on our maps, with only a couple zoom levels, missing your target zoom level really hinders usability. Therefore we debounce the scroll events to keep zooming to a level at a time. So its not a matter of tile rendering blocking zoom, but rather a purposeful, if imperfect, decision.

This is by no means the right solution and we are keeping our eyes on the new Leaflet release that may help solve this. Great catch, btw.

If you are really interested, here is a thread on exactly this issue: https://github.com/Leaflet/Leaflet/issues/2154

efkv··on High Performance Map Interactions Using HTML5 Canvas
Tiling is a very common technique for online maps. Image tiles used to be the standard, but there has been a lot of progress made with vector tiles (what the new Google Maps uses), mainly due to the huge improvements in browser performance as well as greater support of WebGL . Take a look at Mapbox GL, a very cool vector tile renderer:

https://www.mapbox.com/blog/mapbox-gl-js/

efkv··on High Performance Map Interactions Using HTML5 Canvas
I am quite certain there was a mix of both, but I honestly cannot remember the details of the timeline. Basically, if your bottleneck is moving lots of DOM elements around, then clustering is a good next step (depending on your use case). If not, then canvas tiles have worked very well for us.
efkv··on High Performance Map Interactions Using HTML5 Canvas
So basically what we wanted to avoid was doing lots of redrawing during panning. If there were a single static canvas with the image tiles moving underneath it, then it would have to constantly redraw during panning. By using tiles, you only have to draw or redraw as necessary, e.g. as you pan to a part of the map outside of the current bounds.
efkv··on GoTenna – Send and receive messages even when you don’t have service
Can we get rid of this trend of having such media-heavy product pages? The HTML5 header video is nifty, but the page is ~20MB to load. Is that really necessary to describe a product?
efkv··on Spatial Data Structures for Better Map Interactions
Ah, you are right. I must have looked at Vladimir's implementation and then just associated him in my mind with the leaflet-extras implementation.
efkv··on Flocking Simulation in three.js
Based on Boids (Reynolds 1986): http://www.red3d.com/cwr/boids/

Bird models from mrdoob: http://mrdoob.github.io/three.js/examples/canvas_geometry_bi...

Github: https://github.com/ekelleyv/Flocking