ArcGIS与Hadoop

      在大数据时代,没有用上Hadoop、Spark等大数据框架,真的太out了,我们一起探究下ArcGIS与Hadoop的结合应用吧。

      首先我们在github中找到ESRI提供的开源项目https://github.com/Esri,在里面搜索hadoop,可以找到目前Esri在hadoop应用方面提供的四个项目:

      

 

  2013年Esri美国在开发者大会上演示了GIS数据结合Hadoop分析的一个示例,这个示例赢得了听众的阵阵掌声,我们也许对GIS不是很陌生,但是对Hadoop却不是很清楚,其实Esri是用Java开发了一套API,我们习惯性的称为Geometry API,通过这些API,对存储在Hadoop的HDFS中的数据进行处理,上面这个大概就是分析原理。Esri已经将这些工具放到githup上,http://esri.githup.com,大家可以进行下载。

    我们特意为大家整理了文档进行详细介绍,目录结构如下图所示。

 

    文档下载地址1:http://www.docin.com/p-715720081.html

    文档下载地址2:http://ishare.iask.sina.com.cn/f/62994932.html

    文档下载地址3:http://wenku.baidu.com/view/965e89f980eb6294dd886c72.html


    演示视频地址1:http://v.youku.com/v_show/id_XNjI1NTY4NDY0.html?f=20461398

     演示视频地址2:http://v.youku.com/v_show/id_XNjA0NjU1NTEy.html

 

下载,然后完成相关配置。来测试一下Hadoop Tools这个工具箱。

准备数据:hq.shp

 

 1、双击 Features to JSON,打开后,填写参数内容,如下:

 

 

 

2、点击OK执行,生成json文件,打开文件,如下图所示:

 

 

 

3、这里需要记录一下字段,在hive中生成相应的表:

 

 

 

4、双击Copy to Hadoop,打开,填写相应的参数,如下:

 

 

 

这样就把数据放到了HDFS上了。

 

5、通过Hive可以查询到相应的数据,也可以通过Copy From Hadoop 工具来下载数据。

这里需要注意修改一下hosts配置文件。将master和slave的ip地址和hostname写入到hosts当中,不然会报错。

 

 

专注于GIS研发与行业应用,有需要请联系13871085926或QQ:30536168

 

 

 

 

 

1、ArcGIS 10.2支持原生数据发布为要素服

有没有将自己已有的空间数据发布为要素服务的需求?有没有将非Esri空间数据类型的数据作为服务在Web端展示的需求?
    ArcGIS 10.2 for Server增加了这方面的能力,ArcGIS 10.2 for Server 可以将原生数据库中的空间数据发布为要素服务。
    想必都知道现在的关系型数据库,也都对空间数据有一定的支持,如postgreSQL的pg_geometry,Oracle的sdo_geometry,SQL Server的geometry等,如果用户的数据已经是这些格式了,如何发布为要素服务?
    在ArcGIS 10.0的时候Esri支持了要素服务,因为要素服务提供了在线编辑的功能,因此得到很多用户的青睐,但是发布要素服务有一个条件,就是数据必须存储在SDE数据库中,如果用户的空间数据已经是原生数据库的空间数据类型,要发布要素服务的话,我们需要将这些数据到SDE数据库中。
    当然Esri也会考虑用户的需求,和针对用户的需求做出相应的反应,ArcGIS 10.2 for Server 就可以直接将这种原生的空间数据作为要素服务暴露出去,这样的话,省了数据转换等一系列的操作,更让人兴奋的是,这样的能力不需要SDE的支持。
下面我们就以PostgreSQL数据库为例进行说明。
    PostgreSQL数据要支持空间数据,需要安装一个扩展- PostGIS,这个扩展和Oracle的 Oracle Spatial类似。PostGIS 是 Refractions Research 开发的产品,用于为 PostgreSQL 数据库添加对 PostGIS 空间数据类型的支持。PostGIS 遵从开放地理空间联盟 (OGC) 关于结构化查询语言 (SQL) 的简单要素规范。它使用 OGC 熟知二进制 (WKB) 和可识别文本 (WKT) 表示几何。实际上,PostGIS 是向 PostgreSQL 添加空间类型。

2、安装POSTGIS

安装POSTGIS有两种方法:1,可以从http://download.osgeo.org/postgis/下载,根据自己已经安装的postgreSQL版本进行选择,请注意,ArcGIS for Server支持(9.0系列,9.1系列和9.2系列的postgreSQL);2,也可以在postgreSQL安装后自带的Stack Builder中进行安装,在这里我的是后者。

2.1 打开Stack Builder

2.2 选择空间扩展,可以根据需要选择其他的辅助功能

2.3 选择下载目录

2.4 选择创建空间数据库前面的复选框


    等一会儿,当安装完成后,会在postgreSQL中创建template_postgis_20等模板和postgis20数据库如下:
      

3、数据准备

POSTGIS提供了将shape数据转成PG_GEOMETRY的工具,但是这里我要介绍的不是这个工具,而是通过ArcMap完成这个数据转换的操作,ArcMap可以在PostgreSQL数据库中创建要素类,导入数据,导出数据等,这些功能大大简化了数据转换的操作,也很方便。
    在操作数据之前,首先要新建postgres模式
        
    接下来使用直连的方式连接PostgreSQL数据库,在ArcMap右侧的Catalog目录中进行连接。
      
    这时,我从geodatabase中找到一个多边形数据复制到postgis20数据库当中,作为数据库中的原生空间数据。然后,将它加载到ArcMap当中并保存地图文档。
      
    在添加完数据库之后,我们可以在PostgresSQL当中看到该数据,如下图所示。
      

4、发布要素服务

在发布时,会要求数据库必须进行注册,可以提前在Server属性当中进行设置。
      
    选择Register Database,弹出对话框如下图左侧,为数据库命名,然后通过Import方式,找到连接的数据库并选择,如下图右侧。点击OK。
      

现在,可以发布要素服务了。在Fiel菜单下找到Share As选择Service。

posted @ 2020-03-21 11:38  小宝马的爸爸-gisera  阅读(925)  评论(0编辑  收藏  举报