Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
01-10-2020 01:29 PM
Hi,
I need your advice.
I have different bus stop (nodes) with their GPS geographic position (longitude, latitude).
is there any way in neo4j to calculate the distance on the fly by road (or directly if it's not possible) according to the chosen stops?
Thank you for your suggestion.
By the way, i'm new in Neo4j and trying to learn.
01-10-2020 01:55 PM
Hi balbreaker75
I am not sure about the details of your usecase but neo4j has a distance
function that can calculate distance between two points with longtitude and latitude. Here is an example:
MATCH (s1:BusStop)-[:TRAVEL_ROUTE]->(s2:BusStop)
WITH point({ longitude: s1.longitude, latitude: s1.latitude }) AS source, point({ longitude: s2.longitude, latitude: s2.latitude }) AS destination
RETURN round(distance(source, destination)) AS travelDistance
You can find more info here: https://neo4j.com/docs/cypher-manual/current/functions/spatial/
01-13-2020 08:17 AM
Thanks for your response.
in my sources (json file) i have:
{
"nodes": [
{
"stop_id" : "A",
"longitude" : 2.3756,
"latitude" : 48.8415
},
{
"stop_id" : "B",
"longitude" : 2.3271,
"latitude" : 48.8911
},
{...}
]
}
and i would like create de relation (A)<-[:TRAVEL_ROUTE]->(B) if the "stop_id" values are different.
01-21-2020 01:51 AM
So check, something like
IF a.longitude <> b.longitude AND a.lattitude <> b.lattitude
CREATE (a)-[travel_route]-(b) ?
If you want to calculate the distance by road you could probably use google or openmaps API
All the sessions of the conference are now available online