发现了Neo4j空间导入OSM不匹配的顶点

时间:2014-04-02 18:28:35

标签: java neo4j neo4j-spatial

这是我导入osmdata的方法:

private void importOSM(String osm){


    OSMImporter importer = new OSMImporter(osm);
    importer.setCharset(Charset.forName("UTF-8"));

    try{
        importer.importFile(graphDb,osm,false,5000,true);
        importer.reIndex(graphDb,10000);

    }catch(Exception e){
        System.out.println("__________Import Error!! "+e.getMessage());
        e.printStackTrace();
    }
}

当我导入osmdata时,我得到了这个:

Mismatching vertices size for Polygon:Node[1799298]: 1 != 2
Mismatching vertices size for LineString:Node[2118494]: 14 != 23
Mismatching vertices size for Polygon:Node[1776324]: 1 != 2
Mismatching vertices size for Polygon:Node[1886154]: 1 != 2
Mismatching vertices size for Polygon:Node[2124799]: 1 != 6
Mismatching vertices size for LineString:Node[2207017]: 60 != 85
Mismatching vertices size for LineString:Node[2207587]: 45 != 154
Mismatching vertices size for LineString:Node[2213928]: 8 != 16
Mismatching vertices size for LineString:Node[2213939]: 8 != 16
Mismatching vertices size for LineString:Node[2212505]: 3 != 14
Mismatching vertices found 100 times
Mismatching vertices found 200 times
Mismatching vertices found 300 times
Mismatching vertices found 400 times
Mismatching vertices found 500 times
Mismatching vertices found 600 times
Mismatching vertices found 700 times
Mismatching vertices found 800 times
Mismatching vertices found 900 times
Mismatching vertices found 1000 times
Mismatching vertices found 1100 times

我认为这是因为我导入的osmdata只是一个摘录,一些街道不能整体导入。我从http://metro.teczno.com/#san-francisco导入了san-francisco.osm(21 MB bzip的XML OSM数据)。所以我的问题是,我的代码或导入的数据是否有问题或这是正常的吗?

问候

1 个答案:

答案 0 :(得分:1)

是的,这是正常的,你的解释是正确的。当进行OSM转储时,它由边界内的节点节点完成。这些相同的节点属于超出边界的方式和关系,所以你总是会有很多几何图形被切断。因此,许多类似于Neo4j Spatial代码的警告试图理解OSM文件。

对于测试用例中包含的OSM数据,您将看到类似这样的警告。很难找到已经完全清理的OSM数据,因此所有Geometries都被完全包含。

然而,实际的错误可能会导致相同的警告。但我记得当我第一次运行OSM导入器时,我发现了很多这些警告,而且我总是发现它们是由于在导出过程中被削减的方式。