zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    面试官:你对Redis缓存了解吗?面对这11道面试题你是否有很多问号?
    2020年Java多线程与并发系列22道高频面试题(附思维导图和答案解析)
    Java开发5年,四面美团(多线程+redis+JVM+数据库),终拿offer!
    从阿里、腾讯的面试真题中总结了这11个Redis高频面试题
    2020年Java基础高频面试题汇总(1.4W字详细解析)
    2020年大厂Java面试前复习的正确姿势(800+面试题附答案解析)
    吃透这份pdf,面试阿里、腾讯、百度等一线大厂,顺利拿下心仪offer!
    3月编程语言排行及程序员工资,快看看你在哪个等级
    2020年春招面试必备Spring系列面试题129道(附答案解析)
    51单片机putchar函数的说明
  • 原文地址:https://www.cnblogs.com/gisera/p/12537437.html
Copyright © 2011-2022 走看看