-
Notifications
You must be signed in to change notification settings - Fork 18
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
Move geodesy code to an independent package #61
Conversation
Same old Travis-only LibXML segfault on 0.4 -- time to prioritize #60, I suppose. |
Looks great, thanks for this! Is there a reason why the remaining functions left in |
|
Ah okay, I was just curious, since there's no dependency on types defined in OSM. |
Oh yeah, that's a good point, too. |
On the other hand, I'm guessing |
That might be true, yeah. I personally prefer sticking to base julia types where possible though (hence the removal of cruft like Imagine if On the other hand, it doesn't seem like too much effort on our part to provide say.. |
Definitely not too much effort, but given that the both |
Ah that's fair. I just saw your comment about "making conversion more (but not yet fully, see JuliaGeo/Geodesy.jl#4) idiomatic", and agree about it being OSM-specific the longer and closer I stare at the functions in question (across |
LGTM. @tedsteiner? |
Everything looks good to me, too! At one time I had thought about moving the transforms myself into something like Geodesy.jl (see #9), but I kept putting it off because I wasn't sure what the best way to abstract the types and conversions would be with Julia syntax. So, thank you, @garborg, I think it looks great! I'm also happy to hear that this code will be more widely useful for people, and thank you for including a reference back to this package. I will defer to you both on the actual design of the types, but what you have looks good to me. I do have a couple questions, though:
Personally, I think the conversions of the node dictionaries is fine to go in either place. I think it makes for a convenient map representation, so perhaps others will realize this as well and do something similar, even if not working with OSM data. While it may be slower than a vector of locations, its certainly more robust if you will be manipulating the map. I definitely see @yeesian's point about us not being able to monitor everything that's going on and avoid duplication of work. I don't have any planned updates to this package for a bit, so I'm fine with us completing the merge, as long as all the testing errors are related to #60. |
1.) Immutable here means that you can't reach inside an instance of the type and change one of its fields (intuitive here, because unlike with
2.) Honestly I just copy and pasted characters in from the repl, because it didn't feel significant enough to install a Latex autocompletion plugin (it is built into the Julia repl, though, type 3.) Inheriting makes sense. I wasn't sure how to do it yet (will distance someday support LLA and will Bounds someday support ECEF, or would there always need to be two abstract types under the main abstract type?, etc.) and then I forgot -- is good to have it on the radar as a TODO. The testing error is the same XML Travis-0.4-only error that we've failed to reproduce locally before (everything works locally for me on 0.4 before and after the PR) -- given that it fixes a real bug (in my Didn't mention it before, but reexport means after |
That reasoning all makes sense to me, thanks for the explanations. I agree with all your arguments. If you feel good about merging, I feel good about it. I vote go for it. |
Oh yes, that's a good practice, and I should do that more (just to clarify, the thing that felt confusing to me before was getting unqualified access to the methods that operate only on points and bounds types without being able to refer to those types without qualifying them). Okay, feeling good about it -- merging! |
Move geodesy code to an independent package
In splitting out code into newly-released Geodesy.jl, a few changes were made:
Dict{Int, PointType}
boundaryPoint
that made it return the interior point half the time