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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM