-
-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add more primitive geometries #104
Comments
I'd say that
Pinging @visr, in case I forgot something, he's pushing most of the integration work. 👍 |
That's right, and indeed these efforts are not limited to 2D spaces. |
Not sure if you've already seen it, but I also tried to explain the situation a bit in my JuliaCon 2020 talk: https://youtu.be/wih_DIWODUs. So in short, I would say use the primitives from GeometryBasics.jl, unless you have a strong reason not to. In that case, you could use other geometry types, and as long as they implement the new GeoInterface, there should still be easy interop with the rest of the ecosystem. |
I like that the source code in GeoInterfaceRFC.jl is well-structured and organized, it makes a huge difference when we consider adding a dependency to a project. I am still confused reading the source code of GeometryBasics.jl though. For example, the basic_types.jl file you linked @evetion has a set of primitives but it does not contain simple primitives like rectangle, circle, these live in another file geometry_primitives.jl. I don't feel comfortable yet to add GeometryBasics.jl as a dependency as it is been mainly developed with Makie.jl in mind as opposed to a more general set of primitives to be reused across the ecosystem. I am thinking of writing a set of primitives in GeoStatsBase.jl adhering to the GeoInterfaceRFC.jl API while the work in GeometryBasics.jl settles down. Do you have plans to drop the |
I can assure you @SimonDanisch did exactly design it as a general set of primitives to be reused across the ecosystem. I'm not sure why you are concerned that the types are in two different source files though? Perhaps if you think it can be more neatly arranged you could make a pull request. Whilst working on integrating it with JuliaGeo packages we are also making some pull requests, but no fundamental changes, the basis is pretty solid. Regarding making GeoInterfaceRFC.jl the new GeoInterface, I hope that we'll be able to do that over the next month or so? If you still have comments on it, now would be a great time :) |
It leads to errors downstream like people updating things in one file and forgetting to update in the other, etc. Consider for example the naming of primitives, which is a bit off with the "Hyper" prefix sometimes used, but not always used. These small inconsistencies are painful to maintain over time, and I was not sure if PRs changing these tiny details would be welcome. I can try to spot them and submit PRs if they are welcome.
Can we compute the
I will try to digest the proposal today or tomorrow and will open issues there if I find something that is not clear or that could be improved. |
Opened an issue there: JuliaGeo/GeoInterfaceRFC.jl#6 |
Closing this one and continuing the discussion in GeoInterfaceRFC.jl |
I came across this issue from JuliaGeo/GeoInterfaceRFC.jl#6. My recommendation will be that of @visr's in #104 (comment):
The primitives in GeometryBasics.jl will have much stronger support for 3D modelling than the proposed interface in GeoInterfaceRFC.jl, which is more appropriate for interoperability of GeometryBasics with drivers in GDAL/GeoJSON/Shapefile/etc. |
I just made a PR (JuliaGeo/GeoInterface.jl#33) for this. Still needs some working, but we're getting there. However, as discussed above, I hope you can use/improve |
Some of our current algorithms rely on operations involving primitive geometries like rectangles and spheres. We should implement some existing interface for these primitives to increase interoperability with other parts of the Julia ecosystem.
@evetion could you please advise on the current status of packages defining primitive geometries and interfaces? I know you've been working on the GeoInterfaceRFC.jl package, and I wonder if it is the way to go nowadays.
Could you also comment on the relationship between GeoInterfaceRFC.jl and GeometryBasics.jl? Will the latter implement the former? Where the actual geometry primitives will live? Can you confirm that these efforts are not limited to 2D spaces?
P.S.: what is the RFC suffix?
The text was updated successfully, but these errors were encountered: