Skip to content

zhaohaisun/neo4j_szh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

代码结构及主要逻辑

代码结构

CSVImporter类用来导入CSV文件,包含main函数。

RoadConnection类定义了与本路链相连接的路链信息,为五元组。

RoadChain类定义了每个链路的拓扑结构,包含一个九元组和若干个RoadConnection五元组。

neo4j类实现了创建启动和关闭neo4j数据库的功能。

当前正在进行的事情

遇到的困难

如何将北京交通数据集是存储在Neo4j中

对于北京市交通数据集(Topo.csv)来说,由于节点实际上是我们根据道路之间的拓扑关系自己虚构合并出来的,所以我只为这些节点分配了一个int类型的唯一索引。可以由map来根据链路索引(网格号+链路号)查找对应的开始节点索引和结束节点索引。

对于边来说,由于我们的任务较为简单,所以边的属性我只存了int类型的gridIdchainId,分别代表这条链路的网格号和链路号。

合并节点的逻辑:每条链路在Topo.csv文件中的保存形式是:前 9 项数据表示一个路链的基本信息,之后紧接着若干个 5 元组,每个 5 元组表示 1 个与本路链相连接的路链信息。我们先用一个map保存从链路索引(网格号+链路号的Pair)到开始节点索引和结束节点索引的Pair的映射。如果一条链路的某条入链在map中,我们就返回对应的endNode作为这条链路的startNode,相反我们就创建一个startNode;如果这条链路的某条出链在map中,那我们就返回对应的startNode作为这条链路的endNode,相反我们就创建一个endNode。再将startNodeendNode链路加入Neo4j数据库和map中。

导入北京道路交通数据集数据结构(动态路况信息)思路很简单,只需一直在创建边即可,数据集的每一行对应一条新边。

About

Learning Neo4j

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages