Comments (3)
Thanks for your input and I'm glad you are finding the library useful.
So the static method approach means you can't use method chaining so code like:
tree = RTree.create()
.add(1, point(2,3))
.add(2, point(5,2))
.add(3, point(9,4));
becomes much more verbose and less discoverable to make happen with static add methods:
tree = RTreeBuilder.add(RTreeBuilder.create(), 1, point(2,3));
tree = RTreeBuilder.add(tree, 2, point(5,2));
tree = RTreeBuilder.add(tree, 3, point(9,4));
For an immutable data structure I would never expect add to do anything but return a new object otherwise it's not immutable and you make that point too. add
in this case means create a new RTree based on the current tree with the item added to it. Perhaps a better name for the method or I could emphasise what add is doing in the documentation in the README. I don't like the idea of using a builder because it just makes for unnecessary typing and I'm not keen to lose method chaining.
from rtree.
Actually I thought about a normal builder, so you could chain and use it with build() in the end like .add().add().build(). But then I realized that you often want to perform online modifications so a builder is not really suited for that... And the static method for that purpose might be also not so nice, I agree.
Just emphasizing what the immutable operations do in the README would probably be fine then.
from rtree.
Righto, I'll update the README. Thanks for your input.
On 13 March 2015 at 10:05, Pere Ferrera [email protected] wrote:
Actually I thought about a normal builder, so you could chain and use it
with build() in the end like .add().add().build(). But then I realized that
you often want to perform online modifications so a builder is not really
suited for that... And the static method for that purpose might be also not
so nice, I agree.Just emphasizing what the immutable operations do in the README would
probably be fine then.—
Reply to this email directly or view it on GitHub
#20 (comment).
from rtree.
Related Issues (20)
- 0.8.7 version method add in RTree HOT 1
- RTree search function not invoking callback function number of expected times HOT 9
- How can I use R-tree and R*-tree to store roads information and use circle to search point nearest roads?
- How to serialize all geometry? HOT 1
- How to add the count of data points and their linear sum for each MBR HOT 1
- Rtree can't insert anything HOT 2
- The unit of Circle radius is in meter? HOT 2
- Question: how to find overlapping circles? HOT 4
- How to do an incremental knn search? HOT 5
- Pre conditions failing in Rectangle Implementation HOT 2
- Honour minChildren with delete operation HOT 1
- Is the unit of the parameter radius in CircleDouble. create (x, y, radius) in meters? What other unit is it? HOT 2
- Difference between LineDouble and LineFloat
- Is there a way to have sampled results over a geographical search ? HOT 3
- Incorrect result for horizontal line search HOT 4
- Rxjava2 version available? HOT 2
- Would you plan to provide a method that deletes entries according to a value? HOT 2
- rtree2 HOT 2
- [Question] A R-Tree search performance question HOT 7
- Propose to store the geographic rectangles in Integer rather than in Float
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rtree.