Global Positioning System Reference
In-Depth Information
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
...
GraphDatabaseService database = new
EmbeddedGraphDatabase(storeDir);
try {
ShapefileImporter importer = new
ShapefileImporter(database);
importer.importFile("shp/br_municip.shp",
"MUNICIPALITIES",
Charset.forName("UTF-8"));
importer.importFile("shp/pois.shp", "POIS");
importer.importFile("shp/highways.shp", "HIGHWAYS");
} finally {
database.shutdown();
}
...
Fig. 15. Converting shapefi les into Neo4j Spatial.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
...
try {
SpatialDatabaseService spatialService = new
SpatialDatabaseService(database);
Layer layer1 = spatialService.getLayer("MUNICIPALITIES");
SpatialIndexReader spatialIndex1 = layer1.getIndex();
Search searchQuery1 = new SearchCQL(layer1,
"name = 'New York'");
spatialIndex1.executeSearch(searchQuery1);
List<SpatialDatabaseRecord> newYork =
searchQuery1.getResults();
Envelope nyBBOX =
newYork.get(0).getGeometry().getEnvelopeInternal
();
Layer layer2 = spatialService.getLayer("POIS");
SpatialIndexReader spatialIndex2 = layer2.getIndex();
Search searchQuery2 = new SearchCQL(layer2, "type =
'restaurant' AND
bbox(nyBBOX.getMinX(),nyBBOX.getMaxX(),
nyBBOX.getMinY(), nyBBOX.getMaxY())");
spatialIndex2.executeSearch(searchQuery2);
List<SpatialDatabaseRecord> rests =
searchQuery2.getResults();
for (SpatialDatabaseRecord rest : rests ) {
Search searchQuery3 = new
SearchIntersect (rest.getGeometry(),newYork.ge
t(0).getGeometry());
...
}
...
} finally {
database.shutdown();
}
...
Fig. 16. An excerpt of the algorithm that answers Q1 in Neo4j Spatial.
Search WWH ::




Custom Search