git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Spatial Functions


Sounds like an interesting project. I would be open to this replacing the current set of functions based on ESRI, if the quality and performance were superior.

As a database guy, and in particular an optimizer guy, I am very interested in recognizing certain patterns and rewriting them to use indexes (or similar). I hope that your implementation allows those kind of optimizations, just as the ESRI-based functions do.

Also I would love to get to full coverage of the SQL simple feature support, including a good test suite.

Can you please log a JIRA case to track the work that you are doing? Even if your work is outside of Calcite’s repo.

I looked at https://github.com/jonrmayer/geofunctions <https://github.com/jonrmayer/geofunctions> briefly. Did you decide on a license? If you are using Apache License, add LICENSE and NOTICE files, and add a license section to your pom.xml.

Julian


> On Dec 28, 2018, at 3:10 AM, Jonathan mayer <jonrmayer@xxxxxxxxx.INVALID> wrote:
> 
> Hi All,
> Over the last few days, I have started to develop new calcite spatial functions based upon locationtech libraries - jts-core and proj4j - basically replacing the esri-geometry-api.
> 
> JTS is the Gold Standard and there are far more examples/templates out there from an algo implementation perspective.
> It is still early days yet - lots to do - but I have placed a project on GitHub - jonrmayer/geofunctions - which contains all the code to date.
> 
> | 
> | 
> | 
> |  |  |
> 
> |
> 
> |
> | 
> |  | 
> jonrmayer/geofunctions
> 
> Contribute to jonrmayer/geofunctions development by creating an account on GitHub.
> |
> 
> |
> 
> |
> 
> 
> 
> It is intended to be a like-for-like replacement of the existing calcite-core/runtime/GeoFunctions.java file.
> With some minor edits to calcite-master pom /calcite-core pom - it is feasible to drop this in as a replacement - adding the calcite imports etc to the top of the file.
> Tests however will be a problem - eg. spatial.iq will no longer be relevant. ESRI outputs geometries to JSON whereas JTS outputs WKT - this will need to be rewritten.
> My current plan is to focus on implementing as many functions as possible with basic tests and then to improve on the (very) basic Maven testing before letting anyone know that I am reasonably happy.
> I should imagine that spatial.iq will have to wait a fair while - I will need it to test Geometry Collections for eg ST_DWithin/ST_Collect etc and hope that the maven test are enough from a confidence perspective.
> A bit of background:- I have 10+ years in the GIS/spatial arena but only 1.5 years with Java ( very junior ) I know PostGIS/H2GIS/Oracle/SQlServer/OGR/NTS etc. - biased towards the former. I know what I am looking for re: results. My recent focus has been developing Spatial Data Flows within Apache Nifi - hence the interest in Calcite.
> I would like to contribute to the project but I don't believe that I could ever become a "Contributor" - I would mess it up.
> 
> I can build Calcite within my very narrow (Nifi) world view but do struggle with a full build. I need the help of a master if there is an appetite to integrate this.
> I think I have managed to extend the current spatial function coverage - I have added a "Status Report" to the project - jonrmayer/geofunctions. I copied this from Calcite Documentation and it is a bit of a shorthand. I have removed/replaced/added various funtions but it provides a good overview.
> 
> | 
> | 
> | 
> |  |  |
> 
> |
> 
> |
> | 
> |  | 
> jonrmayer/geofunctions
> 
> Contribute to jonrmayer/geofunctions development by creating an account on GitHub.
> |
> 
> |
> 
> |
> 
> 
> 
> Regards,
> Jonathan Mayer
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>