成人教育AV_色窝窝51精品国产人妻消防_蜜桃av国产在线15p_欧美sexhd_向日葵视频污官方网站APP下载_女人无遮挡裸交性做爰_久久国产视精品_亚洲99精品A片久久久久久

首頁 新聞中心 技術(shù)博客

ArcGIS地圖要素圖層(Feature Layer)發(fā)布及調(diào)用

發(fā)布時間:2021-10-08 23:50:26   瀏覽量:3982   作者:GIS前沿

關(guān)鍵詞:ArcGIS,ArcGIS Server,SQL, PostgreSQL

動態(tài)地圖服務主要用于地圖的展示,其還有一個不足,即它不允許用戶與地圖的子圖層進行交互,不能遍歷得到每個圖層,也不能查詢圖層。這里使用要素圖層(Feature Layer)來代替它。

Feature Layer可以訪問每個空間要素及其屬性,可以將其看成是ArcMap中的要素類(Feature Class),它可以接受用戶的查詢.

1.配置ArcMap、ArcGIS Server和PostgreSQL

由于ArcMap是32位,而PostgreSQL是64位,32位的桌面程序ArcMap無法連接64位的Postgesql數(shù)據(jù)庫的,因此,需要將PostgreSQL 32位的動態(tài)庫文件拷貝到ArcMap的bin目錄下。將tools\postgresql-9.0.5-1-windows-x86-dlls目錄下的5個dll文件(這五個dll 是從32位的postgressql客戶端中抽取出來)拷貝到ArcMap的bin目錄下,
我的機器上是C:\Program Files (x86)\ArcGIS\Desktop10.2\bin


跟上述情況類似,要從 ArcGIS for Server 連接,則需要 64 位文件。將PostgreSQL 64位的動態(tài)庫文件拷貝到ArcGIS for Server的bin目錄下。將tools\postgresql-9.0.5-1-windows-x64-dlls目錄下的5個dll文件(這五個dll 是從64位的postgressql客戶端中抽取出來)拷貝到ArcGIS for Server的bin目錄下,我的機器上是C:\Program Files\ArcGIS\Server\bin。

如果已經(jīng)運行 ArcGIS for Server 正在運行,則請重啟 ArcGIS Server 以便識別放入 bin 目錄的文件。

在 PostgreSQL 中創(chuàng)建地理數(shù)據(jù)庫依賴于是否存在 ST_Geometry 庫。為了將空間數(shù)據(jù)存儲在PostgreSQL中,需要利用ST_Geometry 存儲類型存儲空間數(shù)據(jù),ST_Geometry 數(shù)據(jù)類型可通過OGC定義的SQL語言來進行訪問,通過向表示地理要素的對象(點、線及面)提供存儲空間,此存儲類型擴展了數(shù)據(jù)庫的功能。為了使PostgreSQL支持ST_Geometry 存儲類型,需要將st_geometry.dll動態(tài)庫拷貝到PostgreSQL的lib文件夾下。st_geometry.dll可以從ArcGIS桌面安裝目錄下獲得,比如我的在C:\ProgramFiles(x86)\ArcGIS\Desktop10.2\DatabaseSupport\PostgreSQL\Windows64(我的機器是64位),然后拷貝到C:\Program Files\PostgreSQL\9.0\lib 可以根據(jù)自己的安裝路徑來設置。

1.2 創(chuàng)建企業(yè)級地理數(shù)據(jù)庫

在Arc Toolbox中打開【創(chuàng)建企業(yè)級地理數(shù)據(jù)庫】工具箱,如下圖所示。

提供以 postgres 超級用戶連接 PostgreSQL 數(shù)據(jù)庫集群所需的信息,以創(chuàng)建數(shù)據(jù)庫和 sde 用戶。此外,還必須指向在授權(quán) ArcGIS for Server 實例時生成的密鑰代碼文件。【實例】是PostgreSQL運行的主機名,本例中是本機localhost,數(shù)據(jù)庫管理員密碼是PostgreSQL超級用戶的密碼postgres,地理數(shù)據(jù)庫管理員密碼設置為sde。點擊【確定】,等待創(chuàng)建成功。


這樣,在 PostgreSQL 中就創(chuàng)建了數(shù)據(jù)庫、sde 用戶、sde 方案及地理數(shù)據(jù)庫。

3.連接到已創(chuàng)建的地理數(shù)據(jù)庫

存儲在地理數(shù)據(jù)庫中的數(shù)據(jù)應歸sde 用戶之外的其他用戶所有。要創(chuàng)建用戶,必須先以數(shù)據(jù)庫管理員(本例采用 postgres 超級用戶)連接地理數(shù)據(jù)庫。

ArcMap 的目錄樹中,展開【數(shù)據(jù)庫連接】節(jié)點,然后雙擊【添加數(shù)據(jù)庫連接】。將打開【數(shù)據(jù)庫連接】對話框。

提供以 postgres 超級用戶連接新建數(shù)據(jù)庫所需的信息。本例中,以 postgres 用戶連接新建的 sde地理數(shù)據(jù)庫:

由于將在地理處理工具中使用此連接文件,因此必須選中【保存用戶名和密碼】。運行此工具后,應在連接文件中取消選中此選項,以不同用戶進行連接,或者刪除此連接文件從而防止可以訪問此文件的其他用戶以數(shù)據(jù)庫管理員登錄地理數(shù)據(jù)庫。

單擊【確定】創(chuàng)建連接。在目錄樹中的數(shù)據(jù)庫連接節(jié)點下出現(xiàn)新的連接文件。

接下來,可以運行創(chuàng)建數(shù)據(jù)庫用戶工具。

4.從文件型數(shù)據(jù)庫遷移到企業(yè)級地理數(shù)據(jù)庫

打開ArcCatalog,瀏覽到Bestaurants.gdb地理數(shù)據(jù)庫。
右擊Belize_Landbase,選擇復制

瀏覽到kobe.localhost.sde數(shù)據(jù)庫連接,右擊選擇粘貼。對要素類Food_and_Drinks同樣做此操作,彈出以下對話框。點擊確定,完成數(shù)據(jù)傳輸。

這樣,企業(yè)級數(shù)據(jù)庫中就包含如下數(shù)據(jù),注意在要素類和關(guān)系類之前都有數(shù)據(jù)庫和用戶名(表示方案,每個PostghreSQL用戶都自己的方案schema)前綴。

5.發(fā)布要素服務

在ArcMap中,選擇【文件】菜單的【共享為】-【服務】,打開【共享為服務】向?qū)А?/p>

選擇【發(fā)布服務】,點擊【下一步】,服務名稱填寫B(tài)elizeFS,表示Belize要素服務,點擊【下一步】,點擊【繼續(xù)】,選擇【功能】中的【Feature Access】來開啟要素服務

點擊【分析】,錯誤如下,要素服務需要一個已注冊的數(shù)據(jù)庫

右擊該錯誤,選擇【顯示數(shù)據(jù)存儲注冊頁面】

打開【ArcGIS Server屬性】對話框,點擊加號,選擇【注冊數(shù)據(jù)庫】。

在【注冊數(shù)據(jù)庫】對話框中,點擊【導入】,選擇剛建立的數(shù)據(jù)庫連接(我的是kobe.localhost.sde連接),確?!九c發(fā)布者數(shù)據(jù)庫連接相同】選項選上,給注冊數(shù)據(jù)庫起個名字,點擊【確定】。

完成的數(shù)據(jù)庫注冊如下。點擊【確定】。

點擊【分析】,應該看不到錯誤,但可能還有警告,如下圖所示。

繼續(xù)發(fā)布要素服務,可以成功發(fā)布。

訪問:http://localhost:6080/arcgis/rest/services/,可以看到發(fā)布的服務。

在require函數(shù)中加上FeatureLayer:
require([“esri/map”,“esri/layers/featurelayer”, “esri/dijit/Legend”],
function(Map, FeatureLayer, Legend) {
//load the layer into an object
var lyr_foodanddrinks = new esri.layers.FeatureLayer
(“http://localhost:6080/arcgis/rest/services/Belize/MapServer/0”,
{
outFields: [""]
}
);
//load another layer into an object
var lyr_landbase = new esri.layers.FeatureLayer
(“http://localhost:6080/arcgis/rest/services/Belize/MapServer/1”,
{
outFields: ["
"]
}
);
}


來源:https://blog.csdn.net/qq_43173805/article/details/107839745
沂源县| 麻阳| 抚顺市| 时尚| 平邑县| 邹平县| 郸城县| 哈尔滨市| 凤冈县| 博兴县| 方山县| 平顶山市| 扶绥县| 宜州市| 南川市| 安陆市| 同江市| 宝山区| 南京市| 改则县| 凌云县| 金堂县| 南康市| 三门峡市| 肥西县| 泊头市| 黄陵县| 常宁市| 甘孜| 新丰县| 呼伦贝尔市| 佛冈县| 财经| 湖北省| 泗阳县| 雷波县| 阿拉善右旗| 杭州市| 青浦区| 延寿县| 阜南县|