Skip to content

Commit

Permalink
Reverted some changes specific to 3.3.0 exposing Values
Browse files Browse the repository at this point in the history
  • Loading branch information
craigtaverner committed Dec 17, 2017
1 parent f96f8a3 commit 025b4e3
Showing 1 changed file with 37 additions and 45 deletions.
82 changes: 37 additions & 45 deletions src/main/java/org/neo4j/gis/spatial/osm/OSMImporter.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,6 @@
import org.neo4j.helpers.collection.MapUtil;
import org.neo4j.index.impl.lucene.explicit.LuceneBatchInserterIndexProviderNewImpl;
import org.neo4j.unsafe.batchinsert.*;
import org.neo4j.values.storable.Value;
import org.neo4j.values.storable.Values;

public class OSMImporter implements Constants
{
Expand Down Expand Up @@ -355,12 +353,12 @@ void expandToIncludePoint( double[] location )
geometry = -1;
}

void expandToIncludeBBox( Map<String, Value> nodeProps )
void expandToIncludeBBox( Map<String, Object> nodeProps )
{
double[] sbb = (double[]) nodeProps.get( PROP_BBOX ).asObject();
double[] sbb = (double[]) nodeProps.get( PROP_BBOX );
bbox.expandToInclude( sbb[0], sbb[2] );
bbox.expandToInclude( sbb[1], sbb[3] );
vertices += (Integer) nodeProps.get( "vertices" ).asObject();
vertices += (Integer) nodeProps.get( "vertices" );
}

void checkSupportedGeometry(Integer memGType)
Expand Down Expand Up @@ -645,11 +643,11 @@ private void addOSMNodeTags( boolean allPoints,
// Nodes with tags get added to the index as point geometries
if ( allPoints || currentNodeTags.size() > 0 )
{
Map<String, Value> nodeProps = getNodeProperties( currentNode );
Map<String, Object> nodeProps = getNodeProperties( currentNode );
Envelope bbox = new Envelope();
double[] location = new double[] {
(Double) nodeProps.get( "lon" ).asObject(),
(Double) nodeProps.get( "lat" ).asObject() };
(Double) nodeProps.get( "lon" ),
(Double) nodeProps.get( "lat" ) };
bbox.expandToInclude( location[0], location[1] );
addNodeGeometry( currentNode, GTYPE_POINT, bbox, 1 );
poiCount++;
Expand All @@ -659,8 +657,8 @@ private void addOSMNodeTags( boolean allPoints,

protected void debugNodeWithId( T node, String idName, long[] idValues )
{
Map<String, Value> nodeProperties = getNodeProperties( node );
String node_osm_id = nodeProperties.get( idName ).asObject().toString();
Map<String, Object> nodeProperties = getNodeProperties( node );
String node_osm_id = nodeProperties.get( idName ).toString();
for ( long idValue : idValues )
{
if ( node_osm_id.equals( Long.toString( idValue ) ) )
Expand Down Expand Up @@ -707,7 +705,7 @@ protected void createOSMWay( Map<String, Object> wayProperties,
T firstNode = null;
T prevNode = null;
T prevProxy = null;
Map<String, Value> prevProps = null;
Map<String, Object> prevProps = null;
LinkedHashMap<String, Object> relProps = new LinkedHashMap<String, Object>();
HashMap<String, Object> directionProps = new HashMap<String, Object>();
directionProps.put( "oneway", true );
Expand Down Expand Up @@ -736,10 +734,10 @@ protected void createOSMWay( Map<String, Object> wayProperties,
}
createRelationship( proxyNode, pointNode, OSMRelation.NODE,
null );
Map<String, Value> nodeProps = getNodeProperties( pointNode );
Map<String, Object> nodeProps = getNodeProperties( pointNode );
double[] location = new double[] {
(Double) nodeProps.get( "lon" ).asObject(),
(Double) nodeProps.get( "lat" ).asObject() };
(Double) nodeProps.get( "lon" ),
(Double) nodeProps.get( "lat" ) };
bbox.expandToInclude( location[0], location[1] );
if ( prevProxy == null )
{
Expand All @@ -749,8 +747,8 @@ protected void createOSMWay( Map<String, Object> wayProperties,
{
relProps.clear();
double[] prevLoc = new double[] {
(Double) prevProps.get( "lon" ).asObject(),
(Double) prevProps.get( "lat" ).asObject() };
(Double) prevProps.get( "lon" ),
(Double) prevProps.get( "lat" ) };

double length = distance( prevLoc[0], prevLoc[1],
location[0], location[1] );
Expand Down Expand Up @@ -849,12 +847,12 @@ private void createOSMRelation( Map<String, Object> relationProperties,
+ memberProps + "]" );
continue;
}
Map<String, Value> nodeProps = getNodeProperties( member );
Map<String, Object> nodeProps = getNodeProperties( member );
if ( memberType.equals( "node" ) )
{
double[] location = new double[] {
(Double) nodeProps.get( "lon" ).asObject(),
(Double) nodeProps.get( "lat" ).asObject() };
(Double) nodeProps.get( "lon" ),
(Double) nodeProps.get( "lat" ) };
metaGeom.expandToIncludePoint( location );
}
else if ( memberType.equals( "nodes" ) )
Expand Down Expand Up @@ -916,12 +914,12 @@ protected void optimize()
protected abstract T getSingleNode( String name, String string,
Object value );

protected abstract Map<String, Value> getNodeProperties(T member );
protected abstract Map<String, Object> getNodeProperties( T member );

protected abstract T getOSMNode( long osmId, T changesetNode );

protected abstract void updateGeometryMetaDataFromMember( T member,
GeometryMetaData metaGeom, Map<String, Value> nodeProps );
GeometryMetaData metaGeom, Map<String, Object> nodeProps );

protected abstract void finish();

Expand Down Expand Up @@ -1156,12 +1154,12 @@ protected Node getSingleNode( String name, String string, Object value )
}

@Override
protected Map<String, Value> getNodeProperties( Node node )
protected Map<String, Object> getNodeProperties( Node node )
{
LinkedHashMap<String, Value> properties = new LinkedHashMap<>();
LinkedHashMap<String, Object> properties = new LinkedHashMap<String, Object>();
for ( String property : node.getPropertyKeys() )
{
properties.put(property, Values.of(node.getProperty(property)));
properties.put( property, node.getProperty( property ) );
}
return properties;
}
Expand Down Expand Up @@ -1201,12 +1199,12 @@ protected Node getOSMNode( long osmId, Node changesetNode )

@Override
protected void updateGeometryMetaDataFromMember( Node member,
GeometryMetaData metaGeom, Map<String, Value> nodeProps )
GeometryMetaData metaGeom, Map<String, Object> nodeProps )
{
for ( Relationship rel : member.getRelationships( OSMRelation.GEOM ) )
{
nodeProps = getNodeProperties( rel.getEndNode() );
metaGeom.checkSupportedGeometry( (Integer) nodeProps.get( "gtype" ).asObject() );
metaGeom.checkSupportedGeometry( (Integer) nodeProps.get( "gtype" ) );
metaGeom.expandToIncludeBBox( nodeProps );
}
}
Expand Down Expand Up @@ -1391,7 +1389,8 @@ private long findNode( BatchInserter batchInserter, String name,
if ( relationship.getType().name().equals( relType.name() ) )
{
long node = relationship.getEndNode();
Object nodeName = batchInserter.getNodeProperties(node).get("name").asObject();
Object nodeName = batchInserter.getNodeProperties( node ).get(
"name" );
if ( nodeName != null && name.equals( nodeName.toString() ) )
{
return node;
Expand Down Expand Up @@ -1427,17 +1426,9 @@ public String toString()
protected void setDatasetProperties( Map<String, Object> extraProperties )
{
LinkedHashMap<String, Object> properties = new LinkedHashMap<String, Object>();
properties.putAll(deValuedMap(batchInserter.getNodeProperties(osm_dataset)));
properties.putAll(extraProperties);
batchInserter.setNodeProperties(osm_dataset, properties);
}

private Map<String, Object> deValuedMap(Map<String, Value> valueMap) {
Map<String, Object> map = new LinkedHashMap<>();
for (String key : valueMap.keySet()) {
map.put(key, valueMap.get(key).asObject());
}
return map;
properties.putAll( batchInserter.getNodeProperties( osm_dataset ) );
properties.putAll( extraProperties );
batchInserter.setNodeProperties( osm_dataset, properties );
}

@Override
Expand Down Expand Up @@ -1564,7 +1555,7 @@ protected Long getSingleNode( String name, String string, Object value )
}

@Override
protected Map<String, Value> getNodeProperties( Long member )
protected Map<String, Object> getNodeProperties( Long member )
{
return batchInserter.getNodeProperties( member );
}
Expand All @@ -1583,11 +1574,11 @@ protected Long getOSMNode( long osmId, Long changesetNode )
OSMRelation.CHANGESET.name() ) )
{
Long node = rel.getStartNode();
Map<String, Value> props = batchInserter.getNodeProperties( node );
Value nodeOsmId = props.get( "node_osm_id" );
Map<String, Object> props = batchInserter.getNodeProperties( node );
Long nodeOsmId = (Long) props.get( "node_osm_id" );
if ( nodeOsmId != null )
{
changesetNodes.put((Long) nodeOsmId.asObject(), node);
changesetNodes.put( nodeOsmId, node );
}
}
}
Expand All @@ -1607,14 +1598,14 @@ protected Long getOSMNode( long osmId, Long changesetNode )

@Override
protected void updateGeometryMetaDataFromMember( Long member,
GeometryMetaData metaGeom, Map<String, Value> nodeProps )
GeometryMetaData metaGeom, Map<String, Object> nodeProps )
{
for ( BatchRelationship rel : batchInserter.getRelationships( member ) )
{
if ( rel.getType().equals( OSMRelation.GEOM ) )
{
nodeProps = getNodeProperties( rel.getEndNode() );
metaGeom.checkSupportedGeometry( (Integer) nodeProps.get( "gtype" ).asObject() );
metaGeom.checkSupportedGeometry( (Integer) nodeProps.get( "gtype" ) );
metaGeom.expandToIncludeBBox( nodeProps );
}
}
Expand All @@ -1623,7 +1614,8 @@ protected void updateGeometryMetaDataFromMember( Long member,
@Override
protected void finish()
{
HashMap<String, Object> dsProps = new HashMap<>(deValuedMap(batchInserter.getNodeProperties(osm_dataset)));
HashMap<String, Object> dsProps = new HashMap<String, Object>(
batchInserter.getNodeProperties( osm_dataset ) );
updateDSCounts( dsProps, "relationCount", relationCount );
updateDSCounts( dsProps, "wayCount", wayCount );
updateDSCounts( dsProps, "nodeCount", nodeCount );
Expand Down

0 comments on commit 025b4e3

Please sign in to comment.