java arcgis server_ArcGIS Server Java 开发实战---自定义command
這個文檔大家如果喜歡看英文,在ESRI的幫助里面就有。本文和ESRI的幫助文檔類似,當然,我寫的會加入自己的一些東西。
咱開發人員拿到一個開發平臺,當然是要用來開發的,而且我們最好把它改得面目全非,才能顯出開發人員我的水平所在。對于那些拿著模版生成一個web gis站點就去問客戶要錢的事情,對于一個有自尊的開發人員,一般是不屑做的。
所以,我們今天就講講如何自定義命令和工具,先說說自定義命令吧。
命令事實上是command,也就是平常所在html頁面里面的command,這些command里面就是命令按鈕。在我們的ArcGIS Server的Web ADF里面,command被用來做一些不用跟地圖交互的工作;比如縮放到全圖:你不需要跟地圖做任何交互,只要一按按鈕,地圖就縮放到全圖。其它用處,就靠大家去發揮想象了,相信大家在以后的項目中會經常用到。我們以一個例子作為說明:
package com.demo;
import javax.faces.event.ActionEvent;
import com.esri.adf.web.data.WebContext;
import
com.esri.adf.web.data.geometry.WebExtent;
import com.esri.adf.web.faces.event.MapEvent;
import
com.esri.adf.web.faces.event.MapToolAction;
public class MyFullExtent {
WebContext context;
public WebContext getContext() {
return context;
}
public void setContext(WebContext context)
{
this.context = context;
}
public void setFullExtent(){
try{
WebExtent
ex=context.getWebMap().getFullExtent();
context.getWebMap().setCurrentExtent(ex);
context.refresh();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
這是無比簡單的一個command,簡單到我都不好意思發出來給大家看了。注意這個類沒有實現任何接口,也沒有擴展任何現有的類,除了祖宗Object。它有一個WebContext,從上面一個講座我們可以知道,這個類可是我們整個Web ADF的關鍵,有了它,可以得到所有的東西了。
這個類關鍵的方法是setFullExtent,里面的幾行代碼用來將地圖縮放到全圖,大家看看代碼應該就可以明白。
怎么進行部署呢?就像普通的managed bean一樣進行部署就可以了,打開jsf application的心臟faces-config.xml文件,在里面添加如下配置:
myFullExtent
com.demo. MyFullExtent
session
context
#{mapContext}
注意我們把web context作為一個屬性,用來初始化MyFullExtent,#{mapContext}指向了一個在faces-config.xml文件中定義的另外一個Bean,這個bean我們上次講座已經詳細解釋過了。這里說一句廢話,算是提醒一下,有請求過來的時候,先實例化這個類,然后再設置屬性,有的工程師想在實例化里面進行一些操作,就必要用webContext,會報告空指針錯誤,因為這個時候webContext屬性還沒有被設置。
類寫好了,也配置好了,怎么用呢,再給個例子:
action="#{myFullExtent. setFullExtent }" toolText="全圖顯示"
/>
自定義command就這樣完成了。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java arcgis server_ArcGIS Server Java 开发实战---自定义command的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NASA 美国宇航局 2024 年预算
- 下一篇: 摩托罗拉razr 2023曝光:外屏尺寸