thegeekyasian / geo-assist Goto Github PK
View Code? Open in Web Editor NEWGeo Assist is a spatial library to manage spatial data in-memory.
License: Apache License 2.0
Geo Assist is a spatial library to manage spatial data in-memory.
License: Apache License 2.0
Then we have to re runs all the insertions again to this KD Tree
Below is the feature that I am suggesting we can add -
We can have mode that will save this in memory KD Tree to hard disk and after system is up we can rebuild the tree and we don't have to run the insertion again (basically is same like redis stores I guess in hard disk)
KDTree currently support searching in a bounding box. The same implementation should be extended to support polygon shape query.
See the below code
KDTree<Integer, Object> kdTree = new KDTree<>();
kdTree.insert(new KDTreeObject.Builder<Integer, Object>().latitude(25.2002450).longitude(55.2734184).build());
kdTree.insert(new KDTreeObject.Builder<Integer, Object>().latitude(35.2002450).longitude(95.2734184).build());
kdTree.insert(new KDTreeObject.Builder<Integer, Object>().latitude(45.2002450).longitude(15.2734184).build());
Now in the memory the kdTree will have
root
with the treesize
Here I guess we shouldn't allow user to build the KDTreeObject without an id
Awesome project!
Some remarks and questions I have:
RAM: using K-d-trees: how is the memory complexity? Can you provide some measurements and graphs for big amounts of data? I think using some OSM country data could be a good idea.
What about the time complexity of the supported operations: insertion, fetching and deletion?
Is there support to persist the indexes to disk and reread them from disk?
I think it would be very helpful to provide some performance comparisons with the geo-spatial indexing engine of some popular databases.
What If I have a geospatial element that needs to be updated? For example the latitude needs to be corrected. Is there support for an "UPDATE" operation, and thus is updating the K-d tree possible? Or is there a work around: delete and insert? Maybe a good idea to document this in your README.md
What if I also have elevation data?
Hi,
I'd like to use the library to search for the one element that is nearest to given input coordinates within the KDTree (searching the complete tree basically).
Issue that leads to this feature
If we think of a practical scenario for creating the KD Tree from larger data, a user has to copy all the spatial data in the code for it and it will be a headache for a user to do this.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.