ArcGIS Web客戶端開發(四)處理事件和訊息

2021-07-31 23:03:09 字數 2258 閱讀 9407

(1)地圖有關的事件

和map有關的事件,常用的主要有

」load \unload \layer-add \layer-remove \click\dbl-click、

mouse-down \mouse-move \mouse-up \ key-down \key-up

」等,前面已經接觸到不少次

」load

」事件的應用了。下面是滑鼠在地圖上單擊事件的例子,功能很簡單,就是單擊後彈出對話方塊顯示處單擊的螢幕位置座標和地理位置座標:

...map.on( "click", myclickhandler);

...function myclickhandler(evt)

...(2)特定

layer

有關的事件

特別是graphiclayer等使用者放置業務資料的圖層,常用的主要有

\click\dbl-click\mouse-over \ graphic-add \graphic-remove\graphic-draw

等,前三個一般用來查詢圖上目標,後兩個通常用於資料變化後是否儲存圖形等處理,

graphic-draw

則用來控制顯示的重新整理,這裡的重新整理除非是圖上資料變化導致應用據數需要重新匯入,導致顯示可能需要自行變化,才需要處理,否則,一般

arcgis

都給你做好了,不需費心。

...

//open圖層

var incidentlayer = new featurelayer(

"", );

incidentlayer.setselectionsymbol(

new ******markersymbol().setcolor(new color("red"))

);map.addlayers([incidentlayer]);

...//設定圖層目標單擊事件處理程式 //

這裡是事件關聯與處理程式定義在一起的做法。

incidentlayer.on("click", function(evt) );

});}

....

(3)圖形繪製事件

圖形最重要的事件訊息處理,是在圖形的繪製編輯中。在互動輸入中,esri/*******s/draw提供有關繪製動作處理函式,

esri/*******s/edit

提供目標圖形編輯處理函式,這兩個包提供的事件和編輯能力是極為重要的,要重點掌握。

處理繪製動作事件的過程主要是:

...//引入

draw模組

require([ "esri/darw", ... ], function(draw, ... ) else if (evt.geometry.type === "line" || evt.geometry.type === "polyline")

else

//建立圖形物件加到地圖預設的

graphiclayer中

//實際上,應在自己的伺服器上建立乙個

//可儲存的

graphiclayer

map.graphics.add(new graphic(evt.geometry, symbol));

}...

});繪製工具最常用的繪製動作包括這些型別,point、

multipoint

、line

、polyline

、freehandpolyline

、********

、rectangle

、circle、

ellipse

、polygon

、freehandpolygon

、arrow

等。(4)圖形編輯事件

處理編輯動作的主要過程是:

....

require([ "esri/*******s/edit", "dojo/_base/event", "dojo/parser",...],

function ( edit, event, parser,... )

});//當單擊非目標上時,取消編輯工具

map.on("click", function (evt) );

....

上述過程,已經基本能夠完成絕大多數圖形編輯的工作,如果在編輯完成後還需要進一步做工作,則需要通過監視layer的事件進行相關的進一步處置,如儲存資料等。

Hprose for Java客戶端(四)

b size x large 異常處理 size b b size large 同步呼叫異常處理 size b 同步呼叫下的發生的異常將被直接丟擲,使用try.catch語句塊即可捕獲異常,通常伺服器端呼叫返回的異常是hproseexception型別。而如果通訊發生錯誤,一般為ioexceptio...

ONVIF客戶端開發

在使用 gsoap 框架生成 之後,得到檔案 soapc.c soapclient.c stdsoap2.c stdsoap2.h duration.c wsdd.h我們利用現有的soapclient,呼叫api構建onvif請求 包括xml,http client 開發前需要了解一下onvif官網...

XFire客戶端開發

引入 xfire相關的類庫 1.使用wsdl生成靜態客戶端 訪問任意語言編寫的web service 2.使用介面生成靜態客戶端 必須拿到服務端的介面class檔案 遠端 工廠 xfireproxyfactory factory new xfireproxyfactory 建立服務模型 servic...