Giter VIP home page Giter VIP logo

Comments (8)

mourner avatar mourner commented on July 24, 2024

The reason I didn't do this is that item sorting functions (sort by minX, minY, etc.) heavily affect the performance of the library, and they need to be as simple and direct as possible to perform well. If I accepted a format function that returns a bbox from an item, I would be forced to call it from inside the sorting functions, and performance would drop dramatically. Function compilation performs much better.

from rbush.

calvinmetcalf avatar calvinmetcalf commented on July 24, 2024

What I was thinking was a function that would be called when the feature was added not one to be used internally.

from rbush.

mourner avatar mourner commented on July 24, 2024

I see... This has some implications as well, as you would have to keep all item bboxes separately from items. Is there a really important use case for this that I'm missing, or is it just more of a nice to have for convenience?

from rbush.

calvinmetcalf avatar calvinmetcalf commented on July 24, 2024

off the top of my head the use case was consuming geojson that doesn't have the bbox property set but also coordinate transformations would be another conceivable use

from rbush.

mourner avatar mourner commented on July 24, 2024

I think I'd suggest data pre-processing in this case. E.g. go over all features and set a bbox property. Also, next GeoJSON spec will restrict coordinates to WGS84, so no need for coords convertions. geojson/draft-geojson#6

from rbush.

calvinmetcalf avatar calvinmetcalf commented on July 24, 2024

Those are two separate thoughts btw but I was actually thinking in terms of someone wanting to have the tree be in a projected coordinate system not the other way around.

Pre-processing would be the optimal way but that can be applied to having the data in any other format besides the default. If done right (and I can send a pull request) it shouldn't slow down anyone who doesn't use it.

from rbush.

mourner avatar mourner commented on July 24, 2024

But if it indeed does slow down the algorithm if used, I'd rather encourage data preprocessing than allow using RBush with expectedly subpar performance. And so far I couldn't come up with a way to introduce a format function without affecting the performance much due to the way sorting is used in the algorithm. If you do, please let me know.

from rbush.

mourner avatar mourner commented on July 24, 2024

Fixed in a way by #14

from rbush.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.