Я пытаюсь выяснить, находится ли каждое поместье рядом с аптекой или нет (то есть в пределах 3 км) на основе широты и долготы, указанных в базе данных. Если имущество близко к одному, имя имущества должно быть возвращено после выполнения запроса. Следует отметить, что 1 в широте / длине считается 1 км. Я пытался сделать это, используя теорему Пифагора с использованием шифра, но безуспешно. Я пробовал этот запрос и несколько вариантов, кроме того, но, похоже, ни один из них не работает.
MATCH (n), (p)
WHERE n:Estate AND p:Pharmacy AND ((sqrt(((n.Latitude -p.Latitude)*(n.Latitude -p.Latitude))
+((n.Longitude-p.Longitude)*(n.Longitude-p.Longitude)))<3 AND NOT null)
OR (sqrt(((p.Latitude -n.Latitude) *(p.Latitude -n.Latitude))
+((p.Longitude-n.Longitude)*(p.Longitude-n.Longitude)))<3 AND NOT null))
RETURN distinct n.Name
CREATE (Estate1:Estate{ Name: "Estate1",Longitude : 1, Latitude: 1, Area: 80, Floor: 5, Elevator: true, Price: 1500})
RETURN Estate1
CREATE (Estate2:Estate{ Name: " Estate2",Longitude : 3, Latitude: 4, Area: 120, Floor: 2, Elevator: false, Price: 2200})
RETURN Estate2
CREATE (Estate3:Estate{ Name: " Estate3",Longitude : 7, Latitude: 3, Area: 200, Floor: 3, Elevator: true, Price: 1000})
RETURN Estate3
CREATE (Estate4:Estate{ Name: " Estate4",Longitude : 9, Latitude: 1, Area: 72, Floor: 4, Elevator: false, Price: 2500 })
RETURN Estate4
CREATE (Pharmacy1:Pharmacy{ Name: "Pharmacy1", Longitude : 4, Latitude: 3})
CREATE (Pharmacy2:Pharmacy{ Name: "Pharmacy2", Longitude : 14, Latitude: 2})
CREATE (Pharmacy3:Pharmacy{ Name: "Pharmacy3", Longitude : 9, Latitude: 7})