Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
11-15-2018 01:45 AM
I am looking at the point
data type and I can see that it uses x,y,z
and longitude,latitude,height
interchangeably so I was wondering what is the intention behind this.
I can see from the documentation that the intention seems to be to discriminate between points on an ellipsoid to points on a plane in general.
However, it is possible to create WGS-84
points with x
,y
attributes and cartesian
points with longitude
, latitude
attributes which would make the distinction more of an "alias", rather than a strict type checking one.
I think that the distinction between geographical and "generic" points would be useful although it does not seem to be enforced right now.
Can you please clarify if this is an alias or is meant to be more strictly associated with the data type?
EDIT: No, entirely my bad, the semantics of POINT are clear right now
11-15-2018 12:17 PM
Following up on this for others later - the coordinate reference systems with geospatial points (like WGS843D vs. Cartesian) are quite important, and do totally change the semantics of what a point means, because they are sort of like different languages for talking about geospatial things.
In fact if people try it out, and you try to compute the distance between a WGS843D point and a cartesian point, the answer will always come back null. It's not that there isn't a distance between these two points, but that their underlying semantics are so different the answer of the distance between them wouldn't be meaningful.
Usually I advise people to pick a single CRS and stick with it for these reasons. In this case, the semantics of the point will be dictated by the CRS, and for that you need the documentation which is on the site.
11-15-2018 12:50 PM
Thank you for your reply. I think that the confusion originally stemmed from simple CREATE
node tests which seemed to go ahead without problems but were however wrong on my part. This has been rectified and a first iteration of POINT
support has been put together for neomodel.
Geospatial points are geospatial points and geometric points are geometric points and any attempt to instantiate one as the other fails. And this is great for datatypes and validation.
If there is anything remaining from this "issue" at the moment, I would say it is the distinction in just two things and a minor discrepancy between the API and the backend:
Right now, neo4j.v1.spatial
seems to be creating two separate points when points can be expressed in a multitude of projections. So, I believe that the design will converge to a more encompassing solution. I haven't yet tried saving an "absurd" WGS-84 point to check if it will fail but I am thinking of incorporating validation of coordinates against the CRS in the OGM POINT type. This can be extended to any CRS of course.
The other thing that I noticed was that POINT had srid
as the attribute but not crs
. srid
is not descriptive enough (being just a number) and in any case, it is possible to define point
using the CRS on a CYPHER query. So, I would expect that crs
would be available as an attribute, even if via a simple dictionary mapping.
But in the bigger picture, I think that these are details. We might have to adjust the code in the near future but overall, the basic functionality of POINT
works just fine.
All the best
All the sessions of the conference are now available online