Giter Club home page Giter Club logo

datanucleus-geospatial's Introduction

datanucleus-geospatial

DataNucleus support for persisting geospatial types. This plugin supports persistence of java.awt.geom, JTS, Oracle JGeom, and PostGIS types.

This is built using Maven, by executing mvn clean install which installs the built jar in your local Maven repository.

KeyFacts

License : Apache 2 licensed
Issue Tracker : http://github.com/datanucleus/datanucleus-geospatial/issues
Javadocs : 5.2, 5.1, 5.0, 4.1, 4.0
Download(Releases) : Maven Central
Download(Nightly) : Nightly Builds
Dependencies : See file pom.xml

datanucleus-geospatial's People

Contributors

andyjefferson avatar ergunbaris avatar renataogarcia avatar siepkes avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

datanucleus-geospatial's Issues

Geospatial 5.2.0-release does not work with DataNuclease release 5.2.10

Even though I would think changing the return type from void to boolean would be a backwards compatible change Java seems to take offense to it:

Caused by: java.lang.NoSuchMethodError: 'void org.datanucleus.store.types.geospatial.rdbms.adapter.PostGISAdapter.addSQLTypeForJDBCType(org.datanucleus.store.schema.StoreSchemaHandler, org.datanucleus.store.connection.ManagedConnection, short, org.datanucleus.store.rdbms.schema.SQLTypeInfo, boolean)'
	at org.datanucleus.store.types.geospatial.rdbms.adapter.PostGISAdapter.initialiseTypes(PostGISAdapter.java:67) ~[org.datanucleus.store.types.geospatial_5.2.0.release.jar:?]
	at org.datanucleus.store.rdbms.adapter.BaseDatastoreAdapter.initialise(BaseDatastoreAdapter.java:571) ~[org.datanucleus.store.rdbms_5.2.9.jar:?]
	at org.datanucleus.store.rdbms.RDBMSStoreManager.<init>(RDBMSStoreManager.java:301) ~[org.datanucleus.store.rdbms_5.2.9.jar:?]
	... 68 more

The return type was changed in this commit datanucleus/datanucleus-rdbms@3fc4e94 in datanucleus-rdbms. Which breaks Geospatial 5.2.0. I've verified this issue by rebuilding datanucleus-geospatial using DN 5.2.10 as dependency. This fixes the issue.

Support persistence to PostGIS "GEOGRAPHY" column type

To quote the PostGIS docs :

The basis for the PostGIS geometry type is a plane.

This is supported.
It also says

The basis for the PostGIS geography type is a sphere. The shortest path between two points on the sphere is a great circle arc. That means that calculations on geographies (areas, distances, lengths, intersections, etc) must be calculated on the sphere, using more complicated mathematics. For more accurate measurements, the calculations must take the actual spheroidal shape of the world into account.

To implement this, whoever requires it would need to add GeographyColumnMapping in pg2postgis and in jts2postgis (and its subclasses), and then add the requisite entries to the XXXDatastoreAdapter classes.

See https://www.postgis.net/workshops/postgis-intro/geography.html

Only load such as Oracle JGeometry if present in CLASSPATH

A datastore such as MySQL can support multiple geospatial types. The likelihood is that a user will only have some of these types in the CLASSPATH at runtime, based on which ones they want to run. We should avoid trying to load all types up, after a simple check for existence.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.