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