zoukankan      html  css  js  c++  java
  • 几种导入osm(openstreetmap)数据的方法

    一osm2pgsql+postgresql+postgis

    osm2pgsql­——是由OpenStreetMap开发的一个命令行工具负责将OSM数据导入到基于PostgresSql的Postgis的数据库中。下载地址:http://customdebug.com/osm/osm2pgsql.zip,其次我们还要指定osm2pgsql的gitHub地址因为我们需要的两个文件在里面可以找到一个是900913.sql一个是default.style,osm2pgsql在github的地址如下:https://github.com/openstreetmap/osm2pgsql

    安装

    osm2pgsql是一个绿色软件,解压完成后进入到osm2pgsql/x64或者Win32,依你安装的Postgresql而定,osm2pgsql就安装完成了。

    postgreSQL,并且要安装好postgis拓展; 
    注意:postgis安装完成后,会在pgAdmin面板左侧出现自带的模板数据库(如下图) 
    这里写图片描述 
    postgis_22_sample就是自带的模板

    创建空间数据库

    在这里创建空间数据库的方式有多种:

    依据使用工具来分:可以分为使用dos命令行创建使用SQL语句创建
    dos命令行创建:

    实例一

    创建一个简单的postgreSQL数据库:

    createdb nanjing 
    这里写图片描述 
    注意:要在postgresSQL安装目录下进行! 
    在pgAdmin面板中刷新即可出现创建的数据库nanjing 
    这里写图片描述 
    由于我们所创建的只是一般的数据库,所以还要添加一些空间拓展

    添加空间信息

    1)添加pl/pgsql语言:createlang plpgsql nanjing 
    (多数情况下,会自动添加好该语言)
     
    这里写图片描述

    2)加载postgis对象和函数定义(postgis.sql) 
    存放在C:Program FilesPostgreSQL9.4sharecontribpostgis-2.2

    psql -d nanjing -f postgis.sql 
    这里写图片描述 
    加载成功后出现的情况如下图: 
    这里写图片描述

    3)加载EPSG坐标系统定义(spatial_ref_sys.sql) 
    存放在C:Program FilesPostgreSQL9.4sharecontribpostgis-2.2

    pgsql -d nanjing -d spatial_ref_sys.sql 
    这里写图片描述 
    加载成功后出现的情况如下图: 
    这里写图片描述

    导入空间数据

    准备工作:

    下载osm2pgsql软件:http://customdebug.com/osm/osm2pgsql.zip 
    default.style文件:https://github.com/openstreetmap/osm2pgsql

    注意:在下载default文件的时候千万不要直接在网页中点击下载,这样下载后的内容全部都是网页而不是真正的代码,正确的做法是在网页中打开这个文件,并且将代码复制到里面去即可!!!
    https://github.com/openstreetmap/osm2pgsql/blob/master/default.style

    osm数据导入postgis

    1.解压osm2pgsql之后,在dos命令下转到其安装目录: 
    这里写图片描述 
    2.使用osm2pgsql命令将数据导入: 
    这里写图片描述 
    3.导入成功后出现如下结果: 
    这里写图片描述

    导入成功
    实例二

    第一步:创建一个Postgresql的数据库

     打开命令行输入createdb -U postgres -E UTF8 osm 其中osm是数据库的名称,postgres是数据库的用户名。执行完成后我们打开pgAdmin III客户端刷新,就可以看到刚才创建的数据库。

    第二步:安装language plpgsql

    createlang -U postgres plpgsql osm

    一般这一步都不需要,默认已经安装上去了。

    在数据库的【拓展】节点可以看到

    第三步:添加PostGIS功能到数据库,执行如下命令:

    psql -U postgres -d osm -f “你PostgreSQL安装路径/share/contrib/postgis-2.1/postgis.sql”

    控制台会打印如下一些命令。

    表示安装完成。

    第四步:添加EPSG: 900913支持

    上面提到过在osm2pgsql的github上包含900013.sql的文件下载到本地。放到一个好访问的目录中,执行如下命令:

    psql -U postgres -d osm -f “本地的文件路径/900913.sql”

    第五步:添加OSM数据到数据库

    下载github上的osm2pgsql中的default.style文件并拷贝到本地osm2pgsql的x64目录中,把下载的chain.osm.bz2文件解压得到的chain.osm文件也拷贝到osm2pgsql的x64目录中。

    新打开一个命令行进入osm2pgsql的x64目录中,执行如下命令:

    osm2pgsql -U postgres -d osm -s -S ./default.style ./china.osm

    一般情况下会报一个”Error reading style file line 151 (fields=4) flag ‘phstore’ is invalid in non-hstore mode“的错误,如下截图:

    这说明确实hstore表示所以我们需要添加这个标识。点击pgAdmin III 工具栏中的SQL标识

    在弹出的SQL编辑器中输入:create extension hstore;命令点击顶部工具栏中的

    图中画框的按钮。控制台会输出“[QUERY    ] create extension hstore “表示hstore扩展已经添加成功,在pgAdmin III的数据库拓展中可以看到。

    还需要为命令添加一个“–hstore “选项 完整的执行命令是:“osm2pgsql -U postgres -d osm –hstore -s -S ./default.style ./china.osm “这样就正确了。

    导入成功!

    补充:导出shp

    通过postgis可以将数据重导出为shp文件,方便使用。

     二osmosis+postgresql+postgis

    安装

    osmosis的可以直接下载解压就可以使用了:http://wiki.openstreetmap.org/wiki/Osmosis#Latest_stable_version(osmosis依赖于jvm,要保证电脑上的JAVA_HOME、path设置都弄好了)

    使用方法:略

    三使用ArcGIS Editor for OSM转换数据

    下载地址(官网:http://www.esri.com/software/arcgis/extensions/openstreetmap)

    ​安装成功后可在ArcMAP中的工具箱中找到

    直接使用即可

     其他版本地址:https://github.com/Esri/arcgis-osm-editor/releases

    四使用FME(Feature Manipulate Engine)导入OSM数据。使用FME Data Inspector 工具,选择OSM的格式以及下载的文件便可导入OSM数据进行查看。

  • 相关阅读:
    opengl编程指南
    Binder机制1---Binder原理介绍
    [Android]使用platform密钥来给apk文件签名的命令
    IntentFilter
    最高分是多少
    Spring注入
    Bean容器的初始化
    Spring中的Junit
    IOC
    接口及面向接口编程
  • 原文地址:https://www.cnblogs.com/BigFishFly/p/6308972.html
Copyright © 2011-2022 走看看