Hi Alireza, I wrote some test code using your layer creation and neighbour search code that you pasted, and it works fine. So what I think has happened is that you have somehow added nodes with a different layer config to the same index that you are now using for WKB. Perhaps the nodes used to be points in a simple point layer, and now you changed to a WKB layer, it is no longer compatible.
I can make a few suggestions: - Make sure your nodes were added using the layer.add(Geometry) method. If you used layer.add(Node) then it is your responsibility to make sure the node conforms to the same layer config that you are planning to use. For example, do not add a simple point node (with lat/lon attributes) to a WKT layer, or you are likely to create this kind of issue. - Since you are working with points, can I suggest you not use the WKB layer config, but rather use the SimplePointLayer, as created by SpatialGraphDatabase.createSimplePointLayer(name) or SpatialGraphDatabase.createSimplePointLayer(name,xProp,yProp) Regards, Craig On Sun, Aug 9, 2015 at 12:02 AM, Alireza Rezaei Mahdiraji < alireza...@gmail.com> wrote: > > Let me ask you a design kind of question: the nodes in my graph could have > various geometry: point, line, or polygon. > I used the following layer definition (but I am not sure that is the best > way to do it)" > > EditableLayer runningLayer = (EditableLayer) > graphDBSpatial.getOrCreateLayer(layerName, > WKBGeometryEncoder.class, > EditableLayerImpl.class, > geomEncoderConfig); > > I appreciate if you comment on this. > > Alireza > > > On Saturday, August 8, 2015 at 11:48:24 PM UTC+2, Michael Hunger wrote: >> >> It seems you created the layer with a WKB (well known binary) >> representation config >> >> but now your location properties are not decodable as WKB because they >> are double's ? >> >> Michael >> >> Perhaps you can share a test that reproduces the issue? >> >> Am 08.08.2015 um 23:26 schrieb Alireza Rezaei Mahdiraji < >> alire...@gmail.com>: >> >> >> Here are the stacks for the two cases (very similar): >> >> Exception in thread "main" java.lang.ClassCastException: java.lang.Double >> cannot be cast to [B >> at >> org.neo4j.gis.spatial.WKBGeometryEncoder.decodeGeometry(WKBGeometryEncoder.java:41) >> at >> org.neo4j.gis.spatial.filter.SearchIntersectWindow.onEnvelopeIntersection(SearchIntersectWindow.java:48) >> at >> org.neo4j.gis.spatial.rtree.filter.AbstractSearchEnvelopeIntersection.geometryMatches(AbstractSearchEnvelopeIntersection.java:45) >> at >> org.neo4j.gis.spatial.rtree.RTreeIndex$SearchEvaluator.checkPosition(RTreeIndex.java:286) >> at >> org.neo4j.gis.spatial.rtree.RTreeIndex$SearchEvaluator.isStopNode(RTreeIndex.java:299) >> at >> org.neo4j.kernel.impl.traversal.OldTraverserWrapper$Pruner.evaluate(OldTraverserWrapper.java:260) >> at >> org.neo4j.graphdb.traversal.Evaluator$AsPathEvaluator.evaluate(Evaluator.java:69) >> at >> org.neo4j.kernel.impl.traversal.MultiEvaluator.evaluate(MultiEvaluator.java:62) >> at >> org.neo4j.kernel.impl.traversal.MonoDirectionalTraverserIterator.evaluate(MonoDirectionalTraverserIterator.java:61) >> at >> org.neo4j.kernel.impl.traversal.TraversalBranchImpl.evaluate(TraversalBranchImpl.java:125) >> at >> org.neo4j.kernel.impl.traversal.TraversalBranchImpl.initialize(TraversalBranchImpl.java:130) >> at >> org.neo4j.kernel.impl.traversal.TraversalBranchImpl.next(TraversalBranchImpl.java:151) >> at >> org.neo4j.kernel.impl.traversal.TraversalBranchWithState.next(TraversalBranchWithState.java:32) >> at >> org.neo4j.kernel.impl.traversal.StartNodeTraversalBranch.next(StartNodeTraversalBranch.java:50) >> at >> org.neo4j.graphdb.traversal.PreorderDepthFirstSelector.next(PreorderDepthFirstSelector.java:49) >> at >> org.neo4j.kernel.impl.traversal.MonoDirectionalTraverserIterator.fetchNextOrNull(MonoDirectionalTraverserIterator.java:70) >> at >> org.neo4j.kernel.impl.traversal.MonoDirectionalTraverserIterator.fetchNextOrNull(MonoDirectionalTraverserIterator.java:36) >> at >> org.neo4j.helpers.collection.PrefetchingIterator.peek(PrefetchingIterator.java:60) >> at >> org.neo4j.helpers.collection.PrefetchingIterator.hasNext(PrefetchingIterator.java:46) >> at >> org.neo4j.helpers.collection.PrefetchingIterator.next(PrefetchingIterator.java:75) >> at >> org.neo4j.kernel.impl.traversal.OldTraverserWrapper$TraverserImpl.next(OldTraverserWrapper.java:86) >> at >> org.neo4j.kernel.impl.traversal.OldTraverserWrapper$TraverserImpl.next(OldTraverserWrapper.java:47) >> at >> org.neo4j.gis.spatial.filter.SearchRecords.next(SearchRecords.java:53) >> at >> org.neo4j.gis.spatial.filter.SearchRecords.next(SearchRecords.java:29) >> at >> org.neo4j.gis.spatial.pipes.GeoPipeline$1.next(GeoPipeline.java:134) >> at >> org.neo4j.gis.spatial.pipes.GeoPipeline$1.next(GeoPipeline.java:126) >> at >> org.neo4j.gis.spatial.pipes.impl.LastElementIterator.next(LastElementIterator.java:19) >> at >> org.neo4j.gis.spatial.pipes.impl.IdentityPipe.processNextStart(IdentityPipe.java:18) >> at >> org.neo4j.gis.spatial.pipes.impl.AbstractPipe.next(AbstractPipe.java:72) >> at >> org.neo4j.gis.spatial.pipes.AbstractGeoPipe.processNextStart(AbstractGeoPipe.java:49) >> at >> org.neo4j.gis.spatial.pipes.AbstractGeoPipe.processNextStart(AbstractGeoPipe.java:31) >> at >> org.neo4j.gis.spatial.pipes.impl.AbstractPipe.next(AbstractPipe.java:72) >> at org.neo4j.gis.spatial.pipes.impl.Pipeline.next(Pipeline.java:113) >> at >> org.neo4j.gis.spatial.pipes.GeoPipeline.toNodeList(GeoPipeline.java:1015) >> >> >> Exception in thread "main" java.lang.ClassCastException: java.lang.Double >> cannot be cast to [B >> at >> org.neo4j.gis.spatial.WKBGeometryEncoder.decodeGeometry(WKBGeometryEncoder.java:41) >> at >> org.neo4j.gis.spatial.filter.SearchIntersectWindow.onEnvelopeIntersection(SearchIntersectWindow.java:48) >> at >> org.neo4j.gis.spatial.rtree.filter.AbstractSearchEnvelopeIntersection.geometryMatches(AbstractSearchEnvelopeIntersection.java:45) >> at >> org.neo4j.gis.spatial.rtree.RTreeIndex$SearchEvaluator.checkPosition(RTreeIndex.java:286) >> at >> org.neo4j.gis.spatial.rtree.RTreeIndex$SearchEvaluator.isStopNode(RTreeIndex.java:299) >> at >> org.neo4j.kernel.impl.traversal.OldTraverserWrapper$Pruner.evaluate(OldTraverserWrapper.java:260) >> at >> org.neo4j.graphdb.traversal.Evaluator$AsPathEvaluator.evaluate(Evaluator.java:69) >> at >> org.neo4j.kernel.impl.traversal.MultiEvaluator.evaluate(MultiEvaluator.java:62) >> at >> org.neo4j.kernel.impl.traversal.MonoDirectionalTraverserIterator.evaluate(MonoDirectionalTraverserIterator.ja >> >> ... > > -- > You received this message because you are subscribed to the Google Groups > "Neo4j" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to neo4j+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to neo4j+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.