专栏首页给永远比拿愉快Neo4j Spatial数据导入

Neo4j Spatial数据导入

首先,安装neo4j数据库。我的开发环境是Ubuntu,安装过程参考官网:Neo4j Debian Packages,安装后配置:Post-installation tasks

然后安装Neo4j Spatial的插件,参加Github介绍:neo4j-contrib/spatial。即把下载的文件解压到安装目录的plugins目录下$NEO4J_HOME/plugins。

接下来,我们使用Java代码在客户端插入数据到neo4j数据库。 我使用Maven构建工程(需要使用Java8进行maven编译)。pom文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.tzy</groupId>
    <artifactId>neo4j</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>neo4j</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <repositories>
        <repository>
            <id>repo2.maven.org</id>
            <name>maven2 repository</name>
            <url>http://repo2.maven.org/maven2/</url>
        </repository>
        <repository>
            <id>osgeo</id>
            <name>Open Source Geospatial Foundation Repository</name>
            <url>http://download.osgeo.org/webdav/geotools/</url>
        </repository>
        <repository>
            <id>neo4j-contrib-releases</id>
            <url>https://raw.github.com/neo4j-contrib/m2/master/releases</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>neo4j-contrib-snapshots</id>
            <url>https://raw.github.com/neo4j-contrib/m2/master/snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j</artifactId>
            <version>3.0.4</version>
        </dependency>
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-spatial</artifactId>
            <version>0.23-neo4j-3.0.4</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

导入shapefile文件的代码入下:

package cn.tzy.neo4j;

import java.io.File;
import java.io.IOException;

import org.neo4j.gis.spatial.ShapefileImporter;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;

public class Neo4jEx {

    public static void main(String[] args) throws IOException {
        File storeDir = new File("C:/Users/theone/Desktop/spatial.db");
        GraphDatabaseService database = new GraphDatabaseFactory().newEmbeddedDatabase(storeDir);

        try (Transaction tx = database.beginTx()) {
            ShapefileImporter importer = new ShapefileImporter(database);
            importer.importFile("F:/2016/Data/World/continent.shp", "continent");

            tx.success();
        } finally {
            database.shutdown();
        }
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MongoDB导入Shapefile数据

    两种解决方案: 一、将整个shapefile转为GeoJSON然后直接导入mongoDB数据库中 首先,将shapefile数据转为WGS84地理坐标,...

    卡尔曼和玻尔兹曼谁曼
  • 经纬度坐标和投影坐标的转换

    昨天,有朋友要我帮忙看看一个将经纬度坐标转换成墨卡托投影(墨卡托投影有很多变种,我也不知道他说的是哪一种)的程序,他说转换以后的坐标精度太差。当时,他的程序没怎...

    卡尔曼和玻尔兹曼谁曼
  • ShapeFile数据到mongodb的导入

    开发环境为: 系统环境 Linux 4.4.0-36-generic #55~14.04.1-Ubuntu x86_64 x86_64 x86_64 GNU...

    卡尔曼和玻尔兹曼谁曼
  • SSH搭建spring,使用依赖注入的方法

    网上有很多用junit教你搭的,虽然都能跑,但是如果要实际运行和前台交互,那样是不行的,还要导入我所导入的包。

    ydymz
  • 【SpringBoot】SpringBoot基础-HelloWord实例

    SpringBoot的简介我就不写一个篇章来介绍了,相信大家搜索一下,网上一大堆。

    谙忆
  • 基于SSM框架与Maven的CRUD案例

    将会打包成 jar用作 jar包使用。即常见的本地工程 - Java Project。

    时间静止不是简史
  • 手把手教你Spring Boot 整合微信小程序实现登录与增删改查

    编辑:业余草 来源:https://www.xttblog.com/?p=4998

    业余草
  • Spring Boot 整合微信小程序实现登录与增删改查

    项目描述:在微信小程序中通过与Springboot操作数据库实现简单的增删改查,其中我是用springboot整合mybatis-plus 和mysql使用的

    Java编程指南
  • Springboot 整合微信小程序实现登录与增删改查

    链接:https://www.cnblogs.com/ckfeng/p/12812214.html

    程序IT圈
  • SpringBoot 使用JestClient操作Elasticsearch

    操作Elasticsearch的客户端有很多,SpringBoot也提供了方式去操作,这里介绍另外一种方式去使用Elasticsearch --- JestCl...

    dalaoyang

扫码关注云+社区

领取腾讯云代金券