<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Flyingis

    Talking and thinking freely !
    Flying in the world of GIS !
    隨筆 - 156, 文章 - 16, 評(píng)論 - 589, 引用 - 0
    數(shù)據(jù)加載中……

    2006年8月11日

    Flyingis on BlogJava 停止更新

        文章在多個(gè)博客間來回拷貝切換比較麻煩,我寫博客比較注重排版,格式調(diào)整也花費(fèi)了不少時(shí)間,并且多個(gè)博客使得大家的討論也分散在不同的地方,因此今后BlogJavaJavaEye上的文章停止更新(已經(jīng)停止一段時(shí)間了),感謝大家一直以來的關(guān)注,今天是愚人節(jié),但這條消息是正式聲明:)

        博客園上繼續(xù)保持更新,請(qǐng)?jiān)L問:

        http://www.cnblogs.com/flyingis

        歡迎拍磚交流!

        Flyingis

    posted @ 2008-04-01 11:01 Flyingis 閱讀(2180) | 評(píng)論 (1)編輯 收藏

    ArcGIS 9.2 SP4 補(bǔ)丁升級(jí)

        最近一直在出差,今天發(fā)現(xiàn)ArcGIS 9.2 sp4補(bǔ)丁已經(jīng)出來了,打破了9.0三個(gè)補(bǔ)丁包的記錄及單位時(shí)間內(nèi)的補(bǔ)丁密度:)。如果是全新的應(yīng)用系統(tǒng),請(qǐng)直接升級(jí),否則先參考這兩篇說明:

        A complete list of the issues that have been fixed in this service pack is available here.
        A list of the main enhancements that have been made in the 9.2 Service Packs is available here.

        確認(rèn)需要打上sp4補(bǔ)丁?那就開始吧:所有sp4補(bǔ)丁鏈接

        ArcGIS 9.2每次釋放出的補(bǔ)丁不僅解決了許多已發(fā)現(xiàn)的bug,更是在功能、文檔方面做了大量的改進(jìn),所以現(xiàn)在準(zhǔn)備開發(fā)或正在開發(fā)的應(yīng)用系統(tǒng)都應(yīng)該盡量升級(jí)到最新補(bǔ)丁,避免被一些無厘頭的問題扯了后腿。

    posted @ 2007-12-11 23:13 Flyingis 閱讀(3571) | 評(píng)論 (8)編輯 收藏

    跨網(wǎng)段部署 ArcGIS Desktop 浮動(dòng) License

        如果單獨(dú)在服務(wù)器上部署ArcGIS桌面浮動(dòng)License,一般的都需要處理防火墻端口問題,這種環(huán)境在校園機(jī)房中最為典型,9.x版本需要開放27004端口,這樣所有機(jī)器都可以訪問到服務(wù)器上的License,但是在跨網(wǎng)段環(huán)境中,還需要額外的處理。

        使用Windows XP/2003自帶的防火墻,除了開發(fā)27004 TCP端口外,還應(yīng)將lmgrd.exe、ARCGIS.exe添加到例外程序中,其他商業(yè)防火墻同樣需要放開這兩個(gè)程序的訪問控制,否則將無法連接到License服務(wù)器。

        如果使用的是第三方防火墻,如瑞星、天網(wǎng),則只需開放27004/tcp端口。

    posted @ 2007-12-11 23:12 Flyingis 閱讀(2362) | 評(píng)論 (0)編輯 收藏

    遠(yuǎn)程連接 SuSE Linux 設(shè)置方法

        作者:Flyingis

        且不說遠(yuǎn)程連接的便利性,就是機(jī)房里那轟轟的高分貝就足以讓你的耳膜形成習(xí)慣性振動(dòng),何況還需要集中精神工作呢,在網(wǎng)絡(luò)帶寬允許的情況下,還是選擇遠(yuǎn)程吧。遠(yuǎn)程連接的客戶端工具有很多,有商業(yè)的如Symantec pcAnywhere等,但我用的最多的還是Xmanager、VNC、Windows自己的遠(yuǎn)程連接工具、還有Telnet,和Windows環(huán)境一樣,默認(rèn)情況下遠(yuǎn)程連接是沒有打開的,連接SuSE Linux服務(wù)器就需要做一些設(shè)置,其他Linux服務(wù)器相仿。

        Xmanager

    1. 編輯 '/etc/opt/kde3/share/config/kdm/kdmrc' file in config section '[XDMCP]'
        更改"Enable=false" to "Enable=true",將port=177的屏蔽去掉。

    2. 編輯 '/etc/sysconfig/displaymanager'
        更改'DISPLAYMANAGER_REMOTE_ACCESS="no"' to 'DISPLAYMANAGER_REMOTE_ACCESS="yes"'

        然后使用rcxdm restart命令來重啟xdm服務(wù),一定要有/opt/kde3/bin/kdm進(jìn)程存在,如果沒有使用rcxdm restart命令看看是否能重啟服務(wù),并且用netstat -a |grep xdm來看看端口是否在listen。

        或者是,YAST中的Network Service打開Remote Administration,然后運(yùn)行rcxdm restart。

        VNC

        用root用戶更改/root/.vnc下的xstart文件,然后注釋最后一行,再加上gnome - session &

        執(zhí)行vncstart,這樣就可以通過VNC連接了,如果不更改xstart文件,也可以通過vncstart打開VNC連接,但在客戶端連接后出現(xiàn)的是命令行窗口,和ssh類似。

    posted @ 2007-10-19 13:20 Flyingis 閱讀(4521) | 評(píng)論 (0)編輯 收藏

    分布式部署 ArcSDE 和 Oracle 服務(wù)

         摘要: 經(jīng)常輾轉(zhuǎn)于各種服務(wù)器之間,漂浮于各種主流操作系統(tǒng)(AIX/Solaris/SuSE/RH/Windows)之上,被Windows慣壞了之后面對(duì)其他環(huán)境時(shí)經(jīng)常會(huì)發(fā)現(xiàn)自己才疏學(xué)淺,有時(shí)間還是要惡補(bǔ)一下這些筆記,否則下次自己又忘了~~  閱讀全文

    posted @ 2007-10-14 22:43 Flyingis 閱讀(4197) | 評(píng)論 (1)編輯 收藏

    高效率編輯器 VIM-操作篇[轉(zhuǎn)載]

    原文鏈接:http://jmcpherson.org/editing.html
    翻譯鏈接:http://linuxtoy.org/archives/efficient-editing-with-vim.html


    這篇教程寫了在不同工作模式下使用 VIM 的一些基本技巧——即插入模式(insert mode), 命令模式(command mode), 存取文件等。目的是幫助剛剛接觸 VIM 的新手更加有效率的使用這個(gè)出色的編輯器。

    說明:在這篇文章里面,<C-X> 代表 Ctrl + X——就是按住 Ctrl 鍵然后再按 X。而且你可以在很多情況下使用 :help command 來獲得大部分命令的幫助,這個(gè)是 VIM 的內(nèi)部幫助文件命令。


    高效率移動(dòng)

    在插入模式之外

    基本上來說,你應(yīng)該盡可能少的呆在插入模式里面,因?yàn)樵诓迦肽J嚼锩?VIM 就像一個(gè)“啞巴”編輯器一樣。很多新手都會(huì)一直呆在插入模式里面,因?yàn)檫@樣易于使用。但 VIM 的強(qiáng)大之處在于他的命令行模式!你會(huì)發(fā)現(xiàn),在你越來越了解 VIM 之后,你就會(huì)花越來越少的時(shí)間使用插入模式了。

    使用 h、j、k、l

    使用 VIM 高效率編輯的第一步,就是放棄使用箭頭鍵。使用 VIM,你就不用頻繁的在箭頭鍵和字母鍵之間移來移去了,這會(huì)節(jié)省你很多時(shí)間。當(dāng)你在命令模式時(shí),你可以用 h、j、k、l 來分別實(shí)現(xiàn)左、下、上、右箭頭的功能。一開始可能需要適應(yīng)一下,但一旦習(xí)慣這種方式,你就會(huì)發(fā)現(xiàn)這樣操作的高效之處了。

    在你編輯你的電子郵件或者其他有段落的文本時(shí),你可能會(huì)發(fā)現(xiàn)使用方向鍵和你預(yù)期的效果不一樣,有時(shí)候可能會(huì)一次跳過了很多行。這是因?yàn)槟愕亩温湓? VIM 看來是一個(gè)大的長長的行。這時(shí)你可以在按 h、j、k 或者 l 之前鍵入一個(gè) g,這樣 VIM 就會(huì)按屏幕上面的行如你所愿的移動(dòng)了。

    在當(dāng)前行里面有效的移動(dòng)光標(biāo)

    很多編輯器只提供了簡單的命令來控制光標(biāo)的移動(dòng)(比如左、上、右、下、到行首/尾等)。VIM 則提供了很多強(qiáng)大的命令來滿足你控制光標(biāo)的欲望。當(dāng)光標(biāo)從一點(diǎn)移動(dòng)到另外一點(diǎn),在這兩點(diǎn)之間的文本(包括這兩個(gè)點(diǎn))稱作被“跨過”,這里的命令也被稱作是 motion。(簡單說明一下,后面會(huì)用到這個(gè)重要的概念)

    這里是常用到的一些命令(motion):

    • fx:移動(dòng)光標(biāo)到當(dāng)前行的下一個(gè) x 處。很明顯,x 可以是任意一個(gè)字母,而且你可以使用 ; 來重復(fù)你的上一個(gè) f 命令。
    • tx:和上面的命令類似,但是是移動(dòng)到 x 的左邊一個(gè)位置。(這真的很有用)
    • Fx:和 fx 類似,不過是往回找。
    • w:光標(biāo)往前移動(dòng)一個(gè)詞。
    • b:光標(biāo)往后移動(dòng)一個(gè)詞。
    • 0:移動(dòng)光標(biāo)到當(dāng)前行首。
    • ^:移動(dòng)光標(biāo)到當(dāng)前行的第一個(gè)字母位置。
    • $:移動(dòng)光標(biāo)到行尾。
    • ):移動(dòng)光標(biāo)到下一個(gè)句子。
    • ( :移動(dòng)光標(biāo)到上一個(gè)句子。

    在整個(gè)文件里面有效移動(dòng)光標(biāo)

    VIM 有很多命令,可以用來到達(dá)文件里面你想到達(dá)的地方。下面是一些在文件里面移動(dòng)的命令:

    • <C-F>:向下移動(dòng)一屏。
    • <C-B>:向上移動(dòng)一屏。
    • G:到文件尾
    • numG:移動(dòng)光標(biāo)到指定的行(num)。(比如 10G 就是到第 10 行)
    • gg:到文件首
    • H:移動(dòng)光標(biāo)到屏幕上面
    • M:移動(dòng)光標(biāo)到屏幕中間
    • L:移動(dòng)光標(biāo)到屏幕下面
    • *:讀取光標(biāo)處的字符串,并且移動(dòng)光標(biāo)到它再次出現(xiàn)的地方。
    • #:和上面的類似,但是是往反方向?qū)ふ摇?/li>
    • /text:從當(dāng)前光標(biāo)處開始搜索字符串 text,并且到達(dá) text 出現(xiàn)的地方。必須使用回車來開始這個(gè)搜索命令。如果想重復(fù)上次的搜索的話,按 n。
    • ?text:和上面類似,但是是反方向。
    • ma:在當(dāng)前光標(biāo)的位置標(biāo)記一個(gè)書簽,名字為 a。書簽名只能是小寫字母。你看不見書簽的存在,但它確實(shí)已經(jīng)在那里了。
    • `a:到書簽 a 處。注意這個(gè)不是單引號(hào),它一般位于大部分鍵盤的 1 的左邊。
    • `.:到你上次編輯文件的地方。這個(gè)命令很有用,而且你不用自己去標(biāo)記它。

    高效的輸入

    使用關(guān)鍵詞自動(dòng)完成

    VIM 有一個(gè)非常漂亮的關(guān)鍵詞自動(dòng)完成系統(tǒng)。這表示,你可以輸入一個(gè)長詞的一部分,然后按一下某個(gè)鍵,然后 VIM 就替你完成了這個(gè)長詞的輸入了。舉個(gè)例子:你有一個(gè)變量名為 iAmALongAndAwkwardVarName 在你寫的代碼的某個(gè)地方。也許你不想每回都自己一個(gè)一個(gè)字母的去輸入它。

    使用關(guān)鍵詞自動(dòng)完成功能,你只需要輸入開始幾個(gè)字母(比如 iAmAL),然后按 <C-N>(按住 Ctrl,再按 N)或者 <C-P>。如果 VIM 沒有給出你想要的詞,繼續(xù)按,直到你滿意為止,VIM 會(huì)一直循環(huán)它找到的匹配的字符串。

    聰明的進(jìn)入插入模式

    很多新手進(jìn)入插入模式都只是用 i。這樣當(dāng)然可以進(jìn)入插入模式,但通常不是那么合適,因?yàn)?VIM 提供了很多進(jìn)入插入模式的命令。下面是最常用的一些:

    • i:在當(dāng)前字符的左邊插入
    • I:在當(dāng)前行首插入
    • a:在當(dāng)前字符的右邊插入
    • A:在當(dāng)前行尾插入
    • o:在當(dāng)前行下面插入一個(gè)新行
    • O:在當(dāng)前行上面插入一個(gè)新行
    • c{motion}:刪除 motion 命令跨過的字符,并且進(jìn)入插入模式。比如:c$,這將會(huì)刪除從光標(biāo)位置到行尾的字符并且進(jìn)入插入模式。ct!,這會(huì)刪除從光標(biāo)位置到下一個(gè)嘆號(hào)(但不包 括),然后進(jìn)入插入模式。被刪除的字符被存在了剪貼板里面,并且可以再粘貼出來。
    • d{motion}:和上面差不多,但是不進(jìn)入插入模式。

    有效的移動(dòng)大段的文本

    使用可視選擇(visual selections)和合適的選擇模式

    不像最初的 VI,VIM 允許你高亮(選擇)一些文本,并且進(jìn)行操作。這里有三種可視選擇模式:

    • v:按字符選擇。經(jīng)常使用的模式,所以親自嘗試一下它。
    • V:按行選擇。這在你想拷貝或者移動(dòng)很多行的文本的時(shí)候特別有用。
    • <C-V>:按塊選擇。非常強(qiáng)大,只在很少的編輯器中才有這樣的功能。你可以選擇一個(gè)矩形塊,并且在這個(gè)矩形里面的文本會(huì)被高亮。

    在選擇模式的時(shí)候使用上面所述的方向鍵和命令(motion)。比如,vwww,會(huì)高亮光標(biāo)前面的三個(gè)詞。Vjj 將會(huì)高亮當(dāng)前行以及下面兩行。

    在可視選擇模式下剪切和拷貝

    一旦你高亮了選區(qū),你或許想進(jìn)行一些操作:

    • d:剪貼選擇的內(nèi)容到剪貼板。
    • y:拷貝選擇的內(nèi)容到剪貼板。
    • c:剪貼選擇的內(nèi)容到剪貼板并且進(jìn)入插入模式。

    在非可視選擇模式下剪切和拷貝

    如果你很清楚的知道你想拷貝或者剪切什么,那你根本就不需要進(jìn)入可視選擇模式。這樣也會(huì)節(jié)省時(shí)間:

    • d{motion}:剪切 motion 命令跨過的字符到剪貼板。比如,dw 會(huì)剪切一個(gè)詞而 dfS 會(huì)將從當(dāng)前光標(biāo)到下一個(gè) S 之間的字符剪切至剪貼板。
    • y{motion}:和上面類似,不過是拷貝。
    • c{motion}:和 d{motion} 類似,不過最后進(jìn)入插入模式。
    • dd:剪切當(dāng)前行。
    • yy:拷貝當(dāng)前行。
    • cc:剪切當(dāng)前行并且進(jìn)入插入模式。
    • D:剪切從光標(biāo)位置到行尾到剪貼板。
    • Y:拷貝當(dāng)前行。
    • C:和 D 類似,最后進(jìn)入插入模式。
    • x:剪切當(dāng)前字符到剪貼板。
    • s:和x類似,不過最后進(jìn)入插入模式。

    粘貼

    粘貼很簡單,按 p。

    使用多重剪貼板

    很多編輯器都只提供了一個(gè)剪貼板。VIM 有很多。剪貼板在 VIM 里面被稱為寄存器(Registers)。你可以列出當(dāng)前定義的所有寄存器名和它們的內(nèi)容,命令為“:reg”。最好使用小寫字母來作為寄存器的名稱,因?yàn)榇髮懙挠行┍?VIM 占用了。

    使用寄存器的命令為雙引號(hào) “。

    比如:我們要拷貝當(dāng)前行到寄存器 k。你應(yīng)該按 “kyy。(你也可以使用 V”ky。為什么這樣也可以呢?)現(xiàn)在當(dāng)前行應(yīng)該已經(jīng)存在了寄存器 k 里面直到你又拷貝了一些東西進(jìn)入寄存器 k。現(xiàn)在你可以使用命令 “kp 來粘貼寄存器 k 里面的內(nèi)容到你想要的位置。

    避免重復(fù)

    令人驚奇的 . 命令

    在 VI 里面,輸入 . (小數(shù)點(diǎn)符號(hào)),將會(huì)重復(fù)你輸入的上一個(gè)命令。比如,你上個(gè)命令為“dw”(刪除一個(gè)詞),VI 將會(huì)接著再刪除一個(gè)詞。

    使用數(shù)字

    使用數(shù)字也是 VIM 強(qiáng)大的而且很節(jié)省時(shí)間的重要特性之一。在很多 VIM 的命令之前都可以使用一個(gè)數(shù)字,這個(gè)數(shù)字將會(huì)告訴 VIM 這個(gè)命令需要執(zhí)行幾次。比如:

    • 3j 將會(huì)把光標(biāo)向下移動(dòng)三行。
    • 10dd 將會(huì)刪除十行。
    • y3″ 將會(huì)拷貝從當(dāng)前光標(biāo)到第三個(gè)出現(xiàn)的引號(hào)之間的內(nèi)容到剪貼板。

    數(shù)字是擴(kuò)展 motion 命令作用域非常有效的方法。

    記錄宏

    有時(shí)候,你會(huì)發(fā)現(xiàn)你自己在文章的每段或者每行都重復(fù)相同的一系列動(dòng)作。VIM 允許你記錄一個(gè)宏來完成你的特殊需要。

    • qregister:記錄宏到寄存器 register,這里 register 是任意的你的寄存器的名字。比如 qa,將會(huì)記錄并且把宏存在寄存器 a 里面。
    • q:結(jié)束宏的記錄。
    • @register:使用存在寄存器 register 的宏。比如 @a,將會(huì)使用存在寄存器 a 里面的宏。

    必須要記住的是,宏只記錄了你的系列按鍵并且重復(fù)執(zhí)行它們。它們不是魔法。因?yàn)樵?VIM 里面完成目的的方法有很多,所以有時(shí)候你要小心選擇命令來記錄你的宏。因?yàn)樗鼈儠?huì)在所有你要執(zhí)行它的地方執(zhí)行。

    用 VIM 寫代碼

    VIM 是一個(gè)用來寫代碼的絕好編輯器,因?yàn)樗幸恍┨匦允菍iT為程序員而設(shè)計(jì)的。這里是一些常用的:

    • ]p:和 p 的功能差不多,但是它會(huì)自動(dòng)調(diào)整被粘貼的文本的縮進(jìn)去適應(yīng)當(dāng)前代碼的位置。試一下!
    • %:匹配花括號(hào)、方括號(hào)、括號(hào)等。在一個(gè)括號(hào)的上面,然后按 %,鼠標(biāo)就會(huì)出現(xiàn)在匹配的另外一半括號(hào)處。
    • >>:縮進(jìn)所有選擇的代碼
    • <<:和上面類似,但是反縮進(jìn)
    • gd:到達(dá)光標(biāo)所在處函數(shù)或者變量的定義處。
    • K:在 Man 里面查找光標(biāo)當(dāng)前所在處的詞。

    posted @ 2007-09-16 14:10 Flyingis 閱讀(3445) | 評(píng)論 (0)編輯 收藏

    AIX 和 Linux 基于 NFS 實(shí)現(xiàn)共享

         摘要: 這是ArcIMS在SuSE和AIX(1 suse+n aix)上分布式部署時(shí)的一個(gè)細(xì)節(jié)。  閱讀全文

    posted @ 2007-09-12 14:47 Flyingis 閱讀(4496) | 評(píng)論 (0)編輯 收藏

    又一個(gè)升級(jí)補(bǔ)丁引發(fā)的 arcgisserver cache 問題

        成功創(chuàng)建了地圖cache或?qū)rcgis server補(bǔ)丁升級(jí)到最新版本后,出現(xiàn)arcgis catalog及web應(yīng)用程序不能識(shí)別的情況,這是由于arcgis桌面軟件和arcgis server的補(bǔ)丁不是同一個(gè)版本造成的,如server已經(jīng)升級(jí)到9.2 sp3,arcgis desktop還是sp2,解決方法就是將軟件補(bǔ)丁版本同步。

        大家都知道不同版本的ArcGIS軟件不能安裝在同一臺(tái)計(jì)算機(jī)上,如Desktop 9.1和ArcGIS Engine 9.2不能共存,在一臺(tái)計(jì)算機(jī)上必須保證版本一致,其實(shí)同一版本下的補(bǔ)丁也是一樣,ESRI官方網(wǎng)站釋放出補(bǔ)丁時(shí)都會(huì)有說明,所以盡量不要被這種問題拖了后腿:)

    posted @ 2007-09-07 18:04 Flyingis 閱讀(2447) | 評(píng)論 (0)編輯 收藏

    升級(jí) ArcGIS Server 9.2 sp3 補(bǔ)丁

        作者:Flyingis

        下午花了一個(gè)半小時(shí)打上了ArcGIS 9.2 sp3全套補(bǔ)丁,現(xiàn)在ESRI發(fā)布補(bǔ)丁的速度大大快于以往,打補(bǔ)丁的速度越來越慢,這從側(cè)面反應(yīng)出了程序存在的bug,但相對(duì)于9.2剛剛發(fā)步的時(shí)候,現(xiàn)在sp3已經(jīng)完善許多了。

        ArcGIS Server 9.2 sp3解決了不少問題,強(qiáng)烈推薦最新使用server開發(fā)的項(xiàng)目先打上補(bǔ)丁,原有的9.2程序也可以運(yùn)行在新補(bǔ)丁的環(huán)境中,暫時(shí)沒碰到什么問題,但是如果做了大量的cache,升級(jí)sp3補(bǔ)丁的時(shí)候就需要注意了!

        因?yàn)閟erver補(bǔ)丁升級(jí)后會(huì)進(jìn)行post installation,重新指定arcgisserver目錄,該目錄下所有文件的權(quán)限都會(huì)進(jìn)行一次更新,如果之前生成了大量cache,更新權(quán)限會(huì)消耗大量的時(shí)間和計(jì)算機(jī)資源,以至于感覺計(jì)算機(jī)宕機(jī),因此需要采用其他辦法來解決這個(gè)問題——偷梁換柱,再換回:)

    1.停止server服務(wù)。
    2.重命名現(xiàn)有的arcgisserver文件夾。
    3.進(jìn)行post installation,注銷重新登錄計(jì)算機(jī),再次停止server服務(wù)(post后服務(wù)會(huì)自動(dòng)啟動(dòng))。
    4.刪除post后生成cache目錄。
    5.將原來arcgisserver備份文件夾中的cache目錄移動(dòng)到post生成的arcgisserver目錄中。
    6.重新啟動(dòng)server服務(wù)。

        OK,這樣就省事了。

        參考:ESRI Support, Article ID 32766

    posted @ 2007-09-04 16:45 Flyingis 閱讀(2856) | 評(píng)論 (1)編輯 收藏

    ArcGIS Server 開發(fā)系列(二)--Web ADF 編程

         摘要: 目標(biāo):
    根據(jù)查詢語句實(shí)現(xiàn)圖層信息查詢
    準(zhǔn)備工作:
    1.Windows XP sp2中/英文版
    2.Visual Studio 2005中/英文版
    3.ArcGIS Server 9.2(我打上了sp2補(bǔ)?。?,創(chuàng)建一個(gè)ArcGIS Server服務(wù),Map Server屬性中更改Pooling,使用池化連接方式,Progresses選擇“In a seperate process for each instance(high isolation)”,我的服務(wù)為“World”
    4.利用vs2005創(chuàng)建一個(gè)模板server應(yīng)用--Web Mapping Application,并更改MapResourceManager屬性  閱讀全文

    posted @ 2007-08-14 13:55 Flyingis 閱讀(7158) | 評(píng)論 (10)編輯 收藏

    ArcGIS Server 開發(fā)系列(一)--編程框架總覽

         摘要: 理論性的描述總是讓人覺得有點(diǎn)枯燥,但是做ArcGIS Server編程,不論是用.Net ADF還是Java ADF,都需要對(duì)Server開發(fā)的基本框架有所了解,這樣在后面的代碼編寫中才能逐步理解這些架構(gòu)的設(shè)計(jì)思想。  閱讀全文

    posted @ 2007-08-09 15:54 Flyingis 閱讀(6552) | 評(píng)論 (2)編輯 收藏

    ESRI 發(fā)布 ArcGIS 9.2 sp3

        很準(zhǔn)時(shí),2007年8月1日ESRI發(fā)布了ArcGIS 9.2 sp3補(bǔ)丁,相對(duì)于美國時(shí)間就是7月的最后一天,大家可以到ESRI官方網(wǎng)站上去下載,至于補(bǔ)丁所包含最新的改進(jìn)可以參考上篇文章:http://www.tkk7.com/flyingis/archive/2007/07/17/130822.html

    posted @ 2007-08-07 15:28 Flyingis 閱讀(2526) | 評(píng)論 (0)編輯 收藏

    ArcGIS 9.2 Service Pack 3 - Announcement

         摘要: ESRI網(wǎng)站上已經(jīng)帖出ArcGIS 9.2 sp3的說明,提供下載的時(shí)間就是本月底了,看看有哪些更新。
    http://support.esri.com/index.cfm?fa=downloads.patchesServicePacks.viewPatch&PID=17&MetaID=1319  閱讀全文

    posted @ 2007-07-17 14:26 Flyingis 閱讀(11108) | 評(píng)論 (0)編輯 收藏

    AE92 for Java 中手動(dòng)釋放 COM 對(duì)象

        作者:Flyingis 

        用Java進(jìn)行ArcEngine或ArcGIS Server開發(fā),在底層實(shí)際上是用Java調(diào)用AO COM對(duì)象,ESRI用Jintegra庫來解決Java對(duì)COM的調(diào)用問題,如果Java對(duì)象不再使用,Java虛擬機(jī)會(huì)自動(dòng)將這些對(duì)象回收,然后 Jintegra將這些對(duì)象所指的實(shí)際COM對(duì)象銷毀,默認(rèn)情況下時(shí)間間隔是10秒,對(duì)于快速大量調(diào)用COM對(duì)象的操作來說,如在循環(huán)中,COM對(duì)象往往得不到及時(shí)的銷毀,以至于內(nèi)存報(bào)錯(cuò),這時(shí)我們需要手動(dòng)銷毀COM。

        Jintegra釋放方法:

        com.linar.jintegra.Cleaner.release(objectRef);

        在ArcEngine和ArcGIS Server中如何釋放COM呢?Jintegra為ArcObjects生成了一組proxy類,可以參考com.esri.arcgis.interop命名空間,經(jīng)常用的是 com.esri.arcgis.interop.Cleaner,它的release(java.lang.Object anObject)和releaseAll()用來釋放指定的或所有的COM對(duì)象,同時(shí)可以為COM連接和釋放增加監(jiān)聽, addConnectionListener(ConnectionListener listener)和allUnreferencedListener(Unreferenced listener)。

        同時(shí)可以參考:

        HowTo:  Explicitly release a COM object accessed in a Java application
        J-Integra for COM Document
        Garbage Collection: Releasing Java References to COM Objects
        Java調(diào)用COM的中間件Jintegra初探

    posted @ 2007-07-09 14:10 Flyingis 閱讀(3704) | 評(píng)論 (1)編輯 收藏

    ArcIMS[err0143] 解決方法

         摘要: "Unable to display mapservice:[err0143] server not available for service ...",這是出現(xiàn)錯(cuò)誤時(shí)網(wǎng)頁的提示,應(yīng)該如何解決這個(gè)問題呢?請(qǐng)繼續(xù)往下看……  閱讀全文

    posted @ 2007-06-29 13:49 Flyingis 閱讀(4515) | 評(píng)論 (0)編輯 收藏

    ArcGIS Server 體系結(jié)構(gòu)

         摘要: ArcGIS Server包含兩個(gè)重要部分,一個(gè)是ArcGIS Server服務(wù)器端(SOM/SOCs),另外就是用于客戶端開發(fā)的ADF(Application Developer Framework)程序集,包括adf for java和adf for .net。在掌握ArcGIS Server開發(fā)之前,先看看ArcGIS Server的體系架構(gòu)。  閱讀全文

    posted @ 2007-06-29 09:20 Flyingis 閱讀(5766) | 評(píng)論 (3)編輯 收藏

    ArcGIS Desktop 9.2 非版本編輯

        作者:Flyingis

        ArcGIS Desktop 9.2開始支持非版本編輯,和標(biāo)準(zhǔn)的數(shù)據(jù)庫事務(wù)處理一樣,ArcSDE非版本編輯直接對(duì)原數(shù)據(jù)進(jìn)行編輯,非版本編輯的session不保存任何對(duì)數(shù)據(jù)的更改,在ArcMap中對(duì)數(shù)據(jù)start edit,然后對(duì)數(shù)據(jù)進(jìn)行增、刪、改,或是修改屬性信息,完成后執(zhí)行save edit就可以將Geodatabase中的數(shù)據(jù)直接更新,否則edit session without saving放棄之前的修改。在這種模式下處理數(shù)據(jù)會(huì)存在一些問題,如當(dāng)某一段編輯過程中出現(xiàn)問題時(shí)不能放棄或恢復(fù)修改,要么只能退出整個(gè)session的編輯放棄所有的修改。

        使用ArcSDE非版本編輯可以針對(duì)簡單數(shù)據(jù)進(jìn)行處理--點(diǎn)、線、面、注記、relationship,如果feature class存在于拓?fù)浠蚓W(wǎng)絡(luò)中,則不能進(jìn)行編輯。

        ArcMap中進(jìn)行非版本編輯需要注意:

        1.數(shù)據(jù)已經(jīng)registered with the geodatabase

        所有ArcGIS Desktop創(chuàng)建的數(shù)據(jù)會(huì)自動(dòng)registered with the geodatabase,只有當(dāng)數(shù)據(jù)是在ArcGIS Desktop外創(chuàng)建時(shí)(如sdetable命令創(chuàng)建)才需要手動(dòng)注冊(cè)。一般我們可以在ArcCatalog中看到空間數(shù)據(jù)的Register with Geodatabase為灰色的。

        2.數(shù)據(jù)沒有registered as versioned

        如果數(shù)據(jù)已經(jīng)注冊(cè)為版本,可以u(píng)nregister as versioned,這時(shí)之前該版本中沒有提交的數(shù)據(jù)會(huì)丟失。

        3.配置ArcMap編輯進(jìn)程的屬性

        取消“Edit a version of the database with the ability to undo and redo”選項(xiàng)。

        編輯非版本Geodatabase數(shù)據(jù)庫中的數(shù)據(jù),需要注意DBMS的一些特性:同步與鎖、隔離機(jī)制、數(shù)據(jù)完整性等,以后再說吧。

    posted @ 2007-06-25 22:49 Flyingis 閱讀(2917) | 評(píng)論 (3)編輯 收藏

    [Design Pattern] The Factory Pattern

         摘要: 對(duì)工廠模式的重復(fù)羅嗦,用Factory生產(chǎn)Thinkpad。  閱讀全文

    posted @ 2007-06-17 15:01 Flyingis 閱讀(3636) | 評(píng)論 (2)編輯 收藏

    SuSE 9.1 平臺(tái) ArcIMS(JRE) 中文顯示解決方案

         摘要: 最初以為是操作系統(tǒng)的字體顯示問題,但SuSE9.1本身是包含中文字體的,很容易讓我們想到了JRE。

    文章標(biāo)題為《SuSE 9.1 平臺(tái) ArcIMS 中文顯示解決方案》,ArcIMS運(yùn)行于JRE環(huán)境之上,因此問題的根本在于SuSE9.1平臺(tái)下JRE運(yùn)行時(shí)環(huán)境的中文顯示,通過文中介紹的方案可以解決SuSE9.1操作系統(tǒng)中運(yùn)行于JRE之上的所有應(yīng)用程序的中文顯示問題,如ArcIMS Author打開SDE空間數(shù)據(jù)庫時(shí)以中文命名的表無法顯示,數(shù)據(jù)屬性字段中的中文顯示為亂碼等等。  閱讀全文

    posted @ 2007-05-28 09:29 Flyingis 閱讀(3732) | 評(píng)論 (1)編輯 收藏

    Spatial Reference

         摘要: 空間參考是GIS的基礎(chǔ),失去了空間參考信息,地理空間內(nèi)所有的信息也就失去了存在的意義,因?yàn)樗鼈兪遣粶?zhǔn)確的或是錯(cuò)誤的??纯碅rcGIS9.2對(duì)于Spatial Reference的描述及如何編程實(shí)現(xiàn)。

    文章中代碼使用C#描述,AE92 for Java SDK的com.esri.arcgis.geometry中各種接口、實(shí)現(xiàn)方式和C#基本一致,可以使用相同的思路來解決AE Java開發(fā)中關(guān)于Spatial Reference的問題。  閱讀全文

    posted @ 2007-05-10 14:43 Flyingis 閱讀(5045) | 評(píng)論 (2)編輯 收藏

    ArcSDE 9.1 在 Windows 平臺(tái)雙機(jī)熱備

         摘要: 一直沒有時(shí)間整理各種平臺(tái)下ESRI軟件安裝文檔,只能簡單描述一下,有什么問題可以留言。  閱讀全文

    posted @ 2007-04-24 09:32 Flyingis 閱讀(3119) | 評(píng)論 (2)編輯 收藏

    Geometry 對(duì)象淺析

         摘要: ArcEngine Geometry庫定義了基本幾何圖形的矢量表達(dá)形式,頂級(jí)的幾何圖形有Points、Multipoints、Polylines、Polygons、Multipatches,Geodatabase和繪圖系統(tǒng)使用這些幾何圖形來定義其他各種形狀的特征和圖形,提供了編輯圖形的操作方法和地圖符號(hào)系統(tǒng)符號(hào)化特征數(shù)據(jù)的途徑。

    文章中代碼使用C#描述,AE92 for Java SDK的com.esri.arcgis.geometry中各種接口、實(shí)現(xiàn)方式和C#基本一致,可以使用相同的思路來解決AE Java開發(fā)中關(guān)于Geometry的問題。  閱讀全文

    posted @ 2007-04-19 14:15 Flyingis 閱讀(4935) | 評(píng)論 (4)編輯 收藏

    ArcGIS 9.2 SP2 補(bǔ)丁開始提供下載

    2007年4月16日ESRI正式發(fā)布ArcGIS 9.2 SP2補(bǔ)丁下載

    ArcGIS 9.2 Service Pack 2
    (包括ArcGIS Desktop、ArcGIS Desktop開發(fā)包、ArcEngine SDK、ArcEngine Runtime、ArcGIS Server、ArcGIS Server WebADF Runtime升級(jí)補(bǔ)丁包)
    http://support.esri.com/index.cfm?fa=downloads.patchesServicePacks.viewPatch&PID=66&MetaID=1270

    ArcIMS 9.2 Service Pack 2
    http://support.esri.com/index.cfm?fa=downloads.patchesServicePacks.viewPatch&PID=16&MetaID=1271

    ArcSDE 9.2 Service Pack 2
    http://support.esri.com/index.cfm?fa=downloads.patchesServicePacks.viewPatch&PID=66&MetaID=1269

    SP補(bǔ)丁體積不斷增加似乎是當(dāng)今軟件發(fā)展的趨勢,這次釋放出的升級(jí)包中,桌面幫助、Server等升級(jí)包都超過了200M,補(bǔ)丁升級(jí)過程耗時(shí)也較長,準(zhǔn)備升級(jí)之前需做好重要數(shù)據(jù)備份,參考網(wǎng)站上的說明進(jìn)行。

    ArcGIS 9.2 SP2補(bǔ)丁的改進(jìn),請(qǐng)參考這里:
    http://downloads.esri.com/support/downloads/other_/ArcGIS-92sp2-issues.htm
    http://downloads.esri.com/support/downloads/ims_/ArcIMS_92sp2_issues.htm
    http://gisupdates.esri.com/92sp2/ArcSDE-Windows-UNIX-Linux/ArcSDE-92sp2-issues.htm

    posted @ 2007-04-17 10:06 Flyingis 閱讀(4752) | 評(píng)論 (0)編輯 收藏

    用多邊形裁剪影像文件

         摘要: 裁剪方式分為矩形裁剪和多邊形裁剪。  閱讀全文

    posted @ 2007-04-12 11:23 Flyingis 閱讀(4883) | 評(píng)論 (1)編輯 收藏

    Geoprocessing 消息機(jī)制

        作者:Flyingis

        ArcToolbox每個(gè)工具執(zhí)行之后,都會(huì)向Geoprocessor返回消息,包括操作何時(shí)開始,使用哪些參數(shù),操作的進(jìn)度,以及可能出現(xiàn)的問題和錯(cuò)誤。消息的種類包括常規(guī)消息、警告、錯(cuò)誤,GPMessage類可以包含消息的文本及嚴(yán)重等級(jí)。

        首先,Geoprocessor.getMessage()方法可以捕獲最后一個(gè)工具執(zhí)行后返回的錯(cuò)誤消息

    String messages = gp.getMessages(2);
    System.out.println(messages);

        如何使用GPMessage

    //if there was an error then you want to loop the messages
    //returned by the geoprocessor to look for the error
    GPMessages gpMessages = (GPMessages)gp.getReturnMessages();
    for(int i = 0;  i gpMessages.getCount(); i++{
          System.out.println(gpMessages.getMessage(i).getDescription());
    }

        可以看出,上面都是通過GeoProcessor的方法來獲取消息,除此之外還可以使用IGeoProcessorResult接口,從功能上來說它們沒有多少區(qū)別。

    // Execute Union
    IGeoProcessorResult pResult = gp.execute(uniontool, null); 
    if (pResult.getMessageCount() > 0)  
          
    for(int i = 0;  i <= pResult.getMessageCount() - 1; i++){
                System.out.println(pResult.getMessageCount());
          }

    }

        另外我們還可以自定義輸出的方法,根據(jù)程序執(zhí)行的過程,可以添加的方法有AddMessage、AddWarning、AddError。下面的示例將feature class從一個(gè)工作區(qū)復(fù)制到另外一個(gè)工作區(qū),并跟蹤顯示每個(gè)文件復(fù)制的情況。

    IGpEnumList fcs = gp.listFeatureClasses("""","");
    Copy copy 
    = new Copy();
    String fc 
    = fcs.next();
    while (! "".equals(fc)){
          gp.addMessage(
    "Copying " + fc + " to file gdb" );
          copy.setInData(fc);
          copy.setOutData(
    "C:/temp/eric.gdb" + "/" + fc);
          
    try {
                gp.execute(copy, 
    null);
          }
     catch (Exception e) {
                gp.addError(
    "COPY FAILED! " + gp.getMessage(2));
          }

          fc 
    = fcs.next();
    }

    posted @ 2007-04-10 15:58 Flyingis 閱讀(3591) | 評(píng)論 (0)編輯 收藏

    Geoprocessing 數(shù)據(jù)批處理

         摘要: ArcGIS使用者經(jīng)常要面對(duì)大量的數(shù)據(jù)處理工作,如果要在自己的程序中使用Geoprocessing,更多的時(shí)候我們是要進(jìn)行對(duì)數(shù)據(jù)進(jìn)行批處理分析,Geoprocessing為我們提供了豐富的批處理的功能。  閱讀全文

    posted @ 2007-04-05 15:07 Flyingis 閱讀(4505) | 評(píng)論 (2)編輯 收藏

    Vi 指令大全[轉(zhuǎn)載]

         摘要: 方便自己查閱,轉(zhuǎn)載Vi指令大全。  閱讀全文

    posted @ 2007-04-05 10:25 Flyingis 閱讀(2873) | 評(píng)論 (0)編輯 收藏

    學(xué)習(xí)在 ArcEngine 中使用 Geoprocessing

         摘要: Geoprocessing對(duì)于ArcGIS使用者來說,是一種非常方便實(shí)用的工具,它可以利用ArcToolbox中的各種工具為我們的地理空間工作流進(jìn)行框架建模,自動(dòng)執(zhí)行空間分析與處理?,F(xiàn)在ArcEngine 9.2單獨(dú)提供了com.esri.arcgis.geoprocessing.tools工具包,使得在二次開發(fā)中通過Geoprocessing構(gòu)建應(yīng)用模型,將ArcGIS眾多分析工具集成到我們的應(yīng)用中成為現(xiàn)實(shí)。看看在ArcEngine for Java環(huán)境中如何使用它。  閱讀全文

    posted @ 2007-04-04 17:23 Flyingis 閱讀(8944) | 評(píng)論 (1)編輯 收藏

    ArcGIS 9.1 升級(jí)到 9.2 部分文件格式不可讀的解決方法

         摘要: 機(jī)器上安裝了ArcGIS 9.1和Erdas Image,卸載ArcGIS 9.1安裝新版本9.2,發(fā)現(xiàn)img、tif、grid格式的文件均不可讀,其中打開img文件的時(shí)候提示"Raster Objects Data Error",卸載ArcGIS 9.2重裝ArcGIS 9.1,問題依舊。本文提供了解決方法。  閱讀全文

    posted @ 2007-03-15 17:21 Flyingis 閱讀(3871) | 評(píng)論 (2)編輯 收藏

    AE92 SDK for Java 窗體簡例

         摘要: 看看怎么用AE92 SDK for Java做簡單的窗體應(yīng)用。  閱讀全文

    posted @ 2007-03-09 12:41 Flyingis 閱讀(4950) | 評(píng)論 (2)編輯 收藏

    AE92 SDK for Java 最小示例學(xué)習(xí)

         摘要: ArcEngine 92 SDK for Java 最小示例學(xué)習(xí),類似于Java開發(fā)的第一個(gè)例子"Hello World",但要稍微復(fù)雜一點(diǎn)。整個(gè)過程清晰明了,通過這個(gè)例子我們可以順藤摸瓜,逐漸深入到AE的開發(fā)中。  閱讀全文

    posted @ 2007-03-08 16:21 Flyingis 閱讀(3640) | 評(píng)論 (0)編輯 收藏

    ArcGIS 坐標(biāo)系統(tǒng)文件

         摘要: 看看ArcGIS 9.2中包含的坐標(biāo)系統(tǒng)文件夾Geographic Coordinate Systems、Projected Coordinate Systems、Vertical Coordinate Systems的簡介,欣賞北京54和西安80投影坐標(biāo)系令人費(fèi)解的命名方式。  閱讀全文

    posted @ 2007-03-02 09:04 Flyingis 閱讀(13980) | 評(píng)論 (7)編輯 收藏

    地震為什么沒有影響到 Google

    原文鏈接:http://news.mydrivers.com/pages/20070120074305_14081.htm

    2006年底,臺(tái)灣海域地震,讓人們深刻感覺到互聯(lián)網(wǎng)的脆弱。在這次地震中,中美海纜、亞太一號(hào)、亞太二號(hào)海纜、FLAG海纜、亞歐海纜、FNAL海纜等多條國際海底通信光纜中斷。一時(shí)間,臺(tái)灣,韓國,日本,菲律賓,甚至印度的呼叫中心都受牽連;中國用戶幾乎無法訪問所有的美國網(wǎng)站以及網(wǎng)絡(luò)服務(wù),有些網(wǎng)站雖然可以勉強(qiáng)登入,但速度也讓人無法忍受。

    不過,與平時(shí)經(jīng)常被“屏蔽”相反,Google在此期間幾乎沒有受到影響,搜索引擎、Gmail以及Google旗下的其他服務(wù)都能夠在國內(nèi)正常訪問。

    事實(shí)上,連接中國與亞洲、美國以及歐洲的電纜有多個(gè)系統(tǒng)。臺(tái)灣地震只損害了一部分海底電纜,但并不是所有的電纜都出現(xiàn)了問題。這個(gè)時(shí)間段內(nèi),從中國接入國際互聯(lián)網(wǎng)的服務(wù),就取決于提供該服務(wù)的這個(gè)互聯(lián)網(wǎng)公司或者ISP購買的是哪些電纜系統(tǒng),在地震中是否受到損害。

    不過,還有另外一種情況存在:一些國際連接雖然沒有受到地震的影響,但是過多地負(fù)載了從其它損害的電纜轉(zhuǎn)道而來的信息流量,導(dǎo)致交通堵塞。

    Google使用了多網(wǎng)絡(luò)連接系統(tǒng),如果某個(gè)數(shù)據(jù)中心出了訪問障礙,系統(tǒng)會(huì)自動(dòng)選擇其它的網(wǎng)絡(luò)路徑,由其它數(shù)據(jù)中心無縫地提供服務(wù)。

    在設(shè)計(jì)和實(shí)施時(shí),Google在中國的服務(wù)網(wǎng)絡(luò)充分考慮了冗余要求,不會(huì)因?yàn)槠渌€路的擁擠而變得緩慢。因此,Google中國用戶感覺不到任何地震引起的變化。

    為什么Google成為此次地震事件中的特例?

    時(shí)間追溯到2002年2月,Google的一個(gè)數(shù)據(jù)中心的主電源跳閘,導(dǎo)致Google癱瘓了將近1個(gè)小時(shí)。有了這次教訓(xùn),Google便徹底改變了自己的文件系統(tǒng)分布。

    改進(jìn)后的Google文件分布系統(tǒng),即便一個(gè)擁有80臺(tái)電腦的支架被斷開連接,也能迅速完成再一次的備份,而且,并不中斷正常的服務(wù)。實(shí)際上,按照霍茨勒的說法,Google的“每臺(tái)服務(wù)器都有50個(gè)備份”。除此之外,多網(wǎng)絡(luò)連接模式應(yīng)用,也為服務(wù)穩(wěn)定提供了有效的硬件基礎(chǔ)。

    posted @ 2007-01-20 14:54 Flyingis 閱讀(2120) | 評(píng)論 (1)編輯 收藏

    shapefile 和 MapGIS 文件格式之間的轉(zhuǎn)換

         摘要: 這篇文章比較老了,還是在ArcGIS 8.3平臺(tái)下做的,這段時(shí)間一些朋友經(jīng)常問到這個(gè)問題,現(xiàn)在大家早已進(jìn)入ArcGIS 9.x時(shí)代,但還是可以參考一下,是否適用尚不知道,如有什么變化,歡迎大家寫在后面。  閱讀全文

    posted @ 2007-01-19 09:17 Flyingis 閱讀(4606) | 評(píng)論 (2)編輯 收藏

    全套 ArcGIS 軟件安裝(Windows 平臺(tái))

         摘要: 雖然是Windows平臺(tái)下的安裝,但有時(shí)也經(jīng)常碰到棘手的問題,文章記錄的過程比較簡單,如果大家有什么疑問可以在后面留言。
    關(guān)于ESRI產(chǎn)品的安裝,以后還會(huì)寫,包括各種平臺(tái)下的,各種軟件搭配環(huán)境下的,有些我自己也是在學(xué)習(xí)的過程中,歡迎大家一起討論。  閱讀全文

    posted @ 2007-01-17 15:03 Flyingis 閱讀(3574) | 評(píng)論 (0)編輯 收藏

    GeoTools 2.3.0 release available for download

    2 January 2007 - GeoTools 2.3.0 release brings together a lot of great improvements made over the last year. The main focus of this release is improving the raster story for GeoTools. While plug-ins for a variety of rasters existed previously, all of them were memory constrained and not really suitable for real software.

    GeoTools 2.3.0 is available for download at:
    http://geotools.codehaus.org/2.3.0

    2.3.0 brings solid, scalable, fast support for ArcGrid, GeoTiff, GTOPO30, World Images and Image Mosaics and Pyramids. These are already in action in GeoServer 1.5.x, and will soon work their way into uDig (http://udig.refractions.net). In addition it offers:

    - GeoAPI filter interfaces aligned with Filter 1.1 specification
    - Completed providence review
    - More relaxed PostGIS support, able to handle older varied configurations
    - Scalar Vector Graphics "Marks" can be used as part of our SLD support
    - Improved plug-in visibility
    - Maven "archtype"
    - Numerous small bug fixes and improvements

    The following organizations, have contributed to this stable release: GeoSolutions for their RnD contributions appearing in this release, and OSGeo Foundation for their support during the incubation process.

    - About GeoTools
    GeoTools is an open source java GIS toolkit. Used for OGC based projects via GeoAPI interfaces. It includes two great SLD based renderers, raster access and reprojection. Plugins for Shapefile, ArcGrid, ArcSDE, Postgis, OracleSpatial, MySQL and many more.

    For more information visit:

    - http://docs.codehaus.org/display/GEOTOOLS
    - http://docs.codehaus.org/display/GEOTOOLS/Mailing+Lists
    - http://docs.codehaus.org/display/GEOTOOLS/Module+Matrix
    - http://docs.codehaus.org/display/GEOS/GeoServer+1.5.0+beta1

    Source :
    http://sourceforge.net

    From : http://www.gisdevelopment.net/news/viewn.asp?id=GIS:N_axrmhogkef

    posted @ 2007-01-10 22:25 Flyingis 閱讀(1874) | 評(píng)論 (0)編輯 收藏

    靜態(tài)設(shè)計(jì)

         摘要: 重新看看靜態(tài)設(shè)計(jì)的優(yōu)劣之處。  閱讀全文

    posted @ 2006-12-27 16:16 Flyingis 閱讀(2466) | 評(píng)論 (0)編輯 收藏

    初學(xué) Eclipse RCP

         摘要: 以前一直做WebGIS方面的工作,對(duì)桌面關(guān)心甚少。桌面開發(fā)讓人第一個(gè)想到的是VB6的快速開發(fā),以及VC++平臺(tái)中對(duì)效率的追求,VB.NET似乎找不到一個(gè)合適的定位。自己以后想逐步轉(zhuǎn)向桌面,畢竟桌面才是GIS的天下,在效率、可擴(kuò)展性、開發(fā)速度以及平臺(tái)可持續(xù)發(fā)展中權(quán)衡,讓我選擇了Eclipse RCP。  閱讀全文

    posted @ 2006-12-13 19:22 Flyingis 閱讀(3492) | 評(píng)論 (1)編輯 收藏

    亂談 GIS 中小型應(yīng)用

         摘要: 文章圍繞ESRI的產(chǎn)品討論。
    GIS中小型應(yīng)用,是采用ArcEngine+ArcIMS+ArcSDE+Oracle等豪華配置,還是有其他方案可以選擇?  閱讀全文

    posted @ 2006-11-28 22:14 Flyingis 閱讀(4111) | 評(píng)論 (10)編輯 收藏

    ArcSDE 中空間數(shù)據(jù)的備份與恢復(fù) [轉(zhuǎn)載]

    原文鏈接:http://www.gis8.net/Article/arcgis/200611/362.htm

    隨著GIS應(yīng)用系統(tǒng)在復(fù)雜性、集成性、并發(fā)性等方面的要求不斷增加,系統(tǒng)所需的空間數(shù)據(jù)量在急劇地增長,同時(shí)用戶對(duì)空間數(shù)據(jù)并發(fā)訪問的需求也越來越突出。以傳統(tǒng)的文件形式存儲(chǔ)和表示空間數(shù)據(jù)的方法顯然已經(jīng)無法滿足這些需求。由于ArcSDE本身所具有的海量數(shù)據(jù)存儲(chǔ)、多用戶并發(fā)訪問、版本管理、長事務(wù)處理等強(qiáng)大優(yōu)勢,在GIS應(yīng)用系統(tǒng)中引入ArcSDE作為空間數(shù)據(jù)存儲(chǔ)和管理引擎,變得越來越普遍。ArcSDE作為空間數(shù)據(jù)庫引擎,在ArcGIS 8.1系列軟件中屬于服務(wù)器端的產(chǎn)品,在整個(gè)產(chǎn)品框架中,處于數(shù)據(jù)中心的重要地位,它利用Oracle、DB2、SQL Server、Informix等關(guān)系型數(shù)據(jù)庫在數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)完整性等方面的先進(jìn)技術(shù)手段,將海量空間數(shù)據(jù)(包括矢量數(shù)據(jù)和柵格數(shù)據(jù))有機(jī)地組織和管理起來,通過其內(nèi)部異步緩沖、空間索引等先進(jìn)的機(jī)制,提供對(duì)空間數(shù)據(jù)的多用戶高效并發(fā)訪問。

    除了存儲(chǔ)空間數(shù)據(jù)并提供訪問,對(duì)于空間數(shù)據(jù)的備份和恢復(fù),是空間數(shù)據(jù)管理中最重要的工作環(huán)節(jié)之一,也是保障空間數(shù)據(jù)安全的重要方式。首先,空間數(shù)據(jù)本身在應(yīng)用過程中不斷地被更新變動(dòng),所以經(jīng)常會(huì)需要備份不同時(shí)期,不同的空間數(shù)據(jù)版本;第二,存儲(chǔ)介質(zhì)的意外損壞會(huì)導(dǎo)致嚴(yán)重的空間數(shù)據(jù)丟失,因此需要定期對(duì)空間數(shù)據(jù)對(duì)象的整體進(jìn)行完全備份;第三,有時(shí)出于調(diào)整的必要,需要在不同服務(wù)器、甚至不同數(shù)據(jù)庫管理系統(tǒng)之間進(jìn)行空間數(shù)據(jù)的移植和轉(zhuǎn)換。

    在采用文件形式空間數(shù)據(jù)的時(shí)代,空間數(shù)據(jù)的備份僅僅是操作系統(tǒng)中的文件拷貝、備份和歸檔的過程;而空間數(shù)據(jù)的恢復(fù)也不過是復(fù)制、覆蓋的操作;在基于ArcSDE和關(guān)系型數(shù)據(jù)庫的空間數(shù)據(jù)庫時(shí)代,空間數(shù)據(jù)的備份更多的依賴于關(guān)系型數(shù)據(jù)庫的備份和恢復(fù)技術(shù),當(dāng)然也不能缺少ArcSDE所提供的備份工具。按照備份的方式和對(duì)象,ArcSDE中空間數(shù)據(jù)的備份和恢復(fù)可以分為如下兩類:指定空間數(shù)據(jù)對(duì)象的備份恢復(fù),和整體空間數(shù)據(jù)庫的備份恢復(fù)。

    一、 指定空間數(shù)據(jù)對(duì)象的備份和恢復(fù)
    這種方式主要用于備份指定的空間數(shù)據(jù)對(duì)象,比如某個(gè)圖層和要素類、其中的某些滿足特定條件的記錄、甚至特定的版本。實(shí)現(xiàn)這種備份方式的方法主要是利用ArcSDE提供的管理工具:sdeexport和sdeimport命令。它們的位置在%ArcSDEHOME%\bin\中。其中,sdeexport用于將空間數(shù)據(jù)從ArcSDE Server上備份為單獨(dú)的數(shù)據(jù)文件,而sdeimport用于將經(jīng)由sdeexport備份的數(shù)據(jù)文件恢復(fù)到ArcSDE Server中。

    這一方式的缺點(diǎn)在于不能一次備份完整的空間數(shù)據(jù)庫。但是也有個(gè)明顯的優(yōu)點(diǎn),在于通過sdeexport和sdeimport工具,可以將空間數(shù)據(jù)在不同的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)之間進(jìn)行移植。

    1. 備份全部記錄
    使用sdeexport命令的缺省方式即可,比如:
    (1) 將指定的圖層備份到備份文件
    sdeexport -o create -l dcxq,shape -f d:\dcxq.exp -i jerry_oracle -u sde -p sde
    就是將名為jerry_oracle的sde服務(wù)(ArcSDE for Oracle8i)中的指定圖層“dcxq”按缺省方式備份到文件d:\dcxq.exp中。
    (2) 利用操作系統(tǒng)命令,拷貝備份文件到目標(biāo)服務(wù)器上
    (3) 將備份文件恢復(fù)至目標(biāo)RDBMS中
    sdeimport -o create -l newDcxq,shape -f d:\dcxq.exp -i jerry_sqlsvr -u sde -p sde
    此操作將備份文件恢復(fù)到名為jerry_sqlsvr的sde服務(wù)(ArcSDE for SQLServer)中,圖層名為:newDcxq。

    2. 備份部分記錄
    sdeexport命令中添加-w參數(shù)和一個(gè)條件選擇表達(dá)式即可,比如:
    (1) 將指定圖層中滿足條件的記錄備份到備份文件
    sdeexport -o create -l dcxq,shape -f d:\dcxq.exp -w xzqy = '徐匯區(qū)' -i jerry_oracle -u sde -p sde
    就是將名為jerry_oracle的sde服務(wù)(ArcSDE for Oracle8i)內(nèi)的指定圖層“dcxq”中所有"徐匯區(qū)"的人口調(diào)查小區(qū)備份到文件d:\dcxq.exp中。
    (2) 利用操作系統(tǒng)命令,拷貝備份文件到目標(biāo)服務(wù)器上
    (3) 將備份文件恢復(fù)至目標(biāo)RDBMS中
    sdeimport -o create -l XHDcxq,shape -f d:\dcxq.exp -i jerry_sqlsvr -u sde -p sde
    此操作將備份文件恢復(fù)到名為jerry_sqlsvr的sde服務(wù)(ArcSDE for SQLServer)中,圖層名為:XHDcxq。

    3. 備份特定數(shù)據(jù)版本
    sdeexport命令中添加-v參數(shù)和一個(gè)版本名稱即可,比如:
    (1) 將指定圖層的特定版本備份到備份文件
    sdeexport -o create -l dcxq,shape -f d:\dcxq.exp -V verAPR -i jerry_oracle -u sde -p sde
    此操作將名為jerry_oracle的sde服務(wù)(ArcSDE for Oracle8i)內(nèi)的指定圖層“dcxq”的verAPR版本備份到文件d:\dcxq.exp中。
    (2) 利用操作系統(tǒng)命令,拷貝備份文件到目標(biāo)服務(wù)器上
    (3) 將備份文件恢復(fù)至目標(biāo)RDBMS中
    sdeimport -o create -l APRdcxq,shape -f d:\dcxq.exp -i jerry_sqlsvr -u sde -p sde
    此操作將備份文件恢復(fù)到名為jerry_sqlsvr的sde服務(wù)(ArcSDE for SQLServer)中,圖層名為:APRDcxq。

    二、 整體空間數(shù)據(jù)庫的備份和恢復(fù)
    ArcSDE空間數(shù)據(jù)庫的整體備份和恢復(fù),實(shí)質(zhì)上很大程度上是其所在的數(shù)據(jù)庫或者數(shù)據(jù)庫對(duì)象的備份和恢復(fù)問題。當(dāng)然完整的ArcSDE數(shù)據(jù)備份應(yīng)當(dāng)還包括dbtune.sde,giomgr.defs,dbinit.sde和services.sde等文件。

    數(shù)據(jù)庫的備份和恢復(fù)有很多種類。在不同的數(shù)據(jù)庫管理系統(tǒng)中,更是千差萬別??傮w上,大都可以分為靜態(tài)轉(zhuǎn)儲(chǔ)和動(dòng)態(tài)轉(zhuǎn)儲(chǔ)兩個(gè)類型。靜態(tài)轉(zhuǎn)儲(chǔ)是在系統(tǒng)中無事務(wù)處理時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ)操作,因而這種方式得到的一定是一個(gè)數(shù)據(jù)一致性的副本。靜態(tài)轉(zhuǎn)儲(chǔ)的優(yōu)點(diǎn)是操作簡單,保證數(shù)據(jù)一致性,但是缺點(diǎn)也很明顯,轉(zhuǎn)儲(chǔ)操作必須等待用戶事務(wù)結(jié)束才能進(jìn)行,而新的事務(wù)必須等待轉(zhuǎn)儲(chǔ)操作結(jié)束才能執(zhí)行,因此會(huì)降低數(shù)據(jù)庫的可用性。動(dòng)態(tài)轉(zhuǎn)儲(chǔ)是指轉(zhuǎn)儲(chǔ)操作與用戶事務(wù)并發(fā)進(jìn)行,轉(zhuǎn)儲(chǔ)期間允許數(shù)據(jù)庫進(jìn)行存取和修改操作,它不必等待所有運(yùn)行的事務(wù)結(jié)束,也不會(huì)影響新事務(wù)的運(yùn)行,但是無法保證副本中的數(shù)據(jù)正確、有效、完整。所以在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)期間,往往會(huì)建立日志文件。后備文件加上日志文件就可以把數(shù)據(jù)庫恢復(fù)到正確的狀態(tài)。

    1. Oracle數(shù)據(jù)庫
    (1) 兩種歸檔模式(archive mode)
    Oracle有兩中歸檔模式:NO ARCHIVELOG和ARCHIVELOG。在NO ARCHIVELOG模式(該模式為缺省模式)下的數(shù)據(jù)庫操作不歸檔在線日志重做文件。當(dāng)存儲(chǔ)介質(zhì)損壞時(shí),NO ARCHIVELOG模式的數(shù)據(jù)庫只能恢復(fù)到上一次的備份點(diǎn)上。ARCHIVELOG模式的數(shù)據(jù)庫可以通過上一次的備份和歸檔日志重做文件相結(jié)合的方式,恢復(fù)到介質(zhì)損壞之前的點(diǎn)上。
    以NO ARCHIVELOG模式創(chuàng)建的Oracle數(shù)據(jù)庫可以切換至ARCHIVELOG模式。
    (2) 多種備份與恢復(fù)方式
    Oracle中的數(shù)據(jù)備份和恢復(fù)方式包括:脫機(jī)備份與恢復(fù)、邏輯備份與恢復(fù)、熱備份與恢復(fù)。
    * 脫機(jī)備份與恢復(fù):脫機(jī)備份是一種靜態(tài)轉(zhuǎn)儲(chǔ)技術(shù),備份在數(shù)據(jù)庫關(guān)閉、不工作的狀態(tài)下進(jìn)行。脫機(jī)備份包括兩種實(shí)現(xiàn)方式:第一種是使用Oracle提供的工具Backup/Recover;第二種是利用操作系統(tǒng)的復(fù)制功能,復(fù)制數(shù)據(jù)文件,即:冷備份。
    * 邏輯備份與恢復(fù):邏輯備份與恢復(fù)是指將數(shù)據(jù)庫、用戶和表等對(duì)象的內(nèi)容整個(gè)轉(zhuǎn)出到一個(gè)二進(jìn)制文件,然后在需要的時(shí)候通過轉(zhuǎn)入恢復(fù)到原來的形式。這種方式可以備份整個(gè)數(shù)據(jù)庫,指定用戶和指定表的內(nèi)容。
    * 熱備份與恢復(fù):脫機(jī)備份和邏輯備份通常是用戶不訪問數(shù)據(jù)庫時(shí)的靜態(tài)備份操作。這些備份只保證數(shù)據(jù)備份前的一致性和完整性,不保證備份期間的數(shù)據(jù)一致性。為了保證數(shù)據(jù)的即時(shí)一致性,在備份數(shù)據(jù)的同時(shí)還需要備份日志文件。數(shù)據(jù)庫運(yùn)行在ARCHIVELOG方式下,同時(shí)作數(shù)據(jù)和日志文件的備份稱為熱備份。
    (3) 實(shí)現(xiàn)步驟
    選擇使用何種備份方式,由具體的數(shù)據(jù)備份需求所決定。具體的Oracle數(shù)據(jù)庫備份實(shí)現(xiàn)步驟需要參考Oracle相關(guān)文檔,比如《Oracle8 Backup and Recovery Guide》。本實(shí)例采用Oracle中的邏輯備份,使用了exp和imp工具,以sde用戶方式備份和恢復(fù)整體空間數(shù)據(jù)。
    * 備份數(shù)據(jù)庫:使用Oracle中的exp命令,以sde用戶方式備份所有相關(guān)數(shù)據(jù)。
    * 恢復(fù)數(shù)據(jù)庫:使用Oracle中的imp命令,以sde用戶方式恢復(fù)后備數(shù)據(jù)文件。
    * 恢復(fù)ArcSDE系統(tǒng)文件:如果有必要,在恢復(fù)oracle數(shù)據(jù)之后,需要恢復(fù)安裝ArcSDE的程序文件;另外還需要從備份機(jī)器上恢復(fù)dbtune,giomgr.defs,dbinit.sde,和services.sde文件。

    2. SQLServer數(shù)據(jù)庫
    (1)備份和恢復(fù)方式
    在MS SQL Server中,ArcSDE利用單獨(dú)的用戶數(shù)據(jù)庫SDE(缺省名)來管理和組織空間數(shù)據(jù)。
    SQLServer不僅可以在同一臺(tái)服務(wù)器上備份和恢復(fù)數(shù)據(jù)庫,還允許通過備份和恢復(fù)的方式在不同服務(wù)器之間很輕松地移動(dòng)數(shù)據(jù)庫。MS SQL Server也允許將一個(gè)服務(wù)器上的數(shù)據(jù)庫備份恢復(fù)到另外一臺(tái)服務(wù)器上。
    如果要將數(shù)據(jù)庫備份恢復(fù)到另外一臺(tái)服務(wù)器上,兩臺(tái)服務(wù)器上的code page和排序方式必須相同。比如,不能把用二進(jìn)制排序方式(Binary Sort Order,BSO)建立的數(shù)據(jù)庫恢復(fù)到一個(gè)配置為缺省排序方式(字典順序,dictionary)的服務(wù)器上。當(dāng)然,可以通過在master數(shù)據(jù)庫中運(yùn)行'sp_helpsort'存儲(chǔ)過程設(shè)定服務(wù)器的排序方式。
    數(shù)據(jù)庫的備份操作同時(shí)備份了數(shù)據(jù)庫的系統(tǒng)表,包括sysusers。當(dāng)在不同的服務(wù)器上執(zhí)行備份和恢復(fù)操作時(shí),備份數(shù)據(jù)庫中所包含的用戶可能會(huì)和新的服務(wù)器上master數(shù)據(jù)庫中sysxlogins表中包含的用戶不同。這樣的話,就無法登錄到恢復(fù)后的數(shù)據(jù)庫,知道更正并統(tǒng)一master數(shù)據(jù)庫中sysxlogins表和恢復(fù)數(shù)據(jù)庫中sysusers表的登錄映射。要使上述兩個(gè)表同步,需要運(yùn)行"sp_change_users_login"存儲(chǔ)過程。
    (2)實(shí)現(xiàn)步驟
    * 備份SDE數(shù)據(jù)庫到備份文件:既可以使用T-SQL中的BACKUP語句,也可以使用企業(yè)管理器中的備份工具向?qū)硗瓿蒘DE和其他空間數(shù)據(jù)庫的備份。
    * 將備份文件復(fù)制到目標(biāo)服務(wù)器
    * 將備份文件恢復(fù)到目標(biāo)服務(wù)器:可以使用企業(yè)管理器中的恢復(fù)還原工具向?qū)硗瓿蒘DE和其他空間數(shù)據(jù)庫的恢復(fù)。
    * 統(tǒng)一SDE用戶登錄映射
    A. 兩個(gè)服務(wù)器上都有SDE用戶,但是兩者的SDE用戶具有不同的標(biāo)識(shí)
    當(dāng)恢復(fù)SDE數(shù)據(jù)庫至新的服務(wù)器后,sde數(shù)據(jù)庫中的sde用戶的SID與master數(shù)據(jù)庫中dbo.sysxlogins表中的sde登錄名的SID不同,比如:
    Use sde
    go
    Select SID from sysusers where name = 'sde'
    Use master
    go
    select SID from sysxlogins where name = 'sde'

    SID
    -----------------------------------------------------------
    0x76695419BFAED41184FD00C04F8D0451
    (1 row(s) affected)

    SID
    -----------------------------------------------------------
    0xEDDFCA8E56B0D411850000C04F8D0451
    (1 row(s) affected)
    此時(shí)必須統(tǒng)一兩個(gè)表中sde用戶的SID標(biāo)識(shí),運(yùn)行"sp_change_users_login" 存儲(chǔ)過程,示例如下:
        Use sde
    go
    sp_change_users_login 'update_one','sde','sde'
    運(yùn)行上述的SID查詢來驗(yàn)證修改結(jié)果:
    0xEDDFCA8E56B0D411850000C04F8D0451
    0xEDDFCA8E56B0D411850000C04F8D0451
    可以看出修改后兩個(gè)表中sde用戶的SID標(biāo)識(shí)完全一致,此時(shí)就可以啟動(dòng)ArcSDE for SQLServer的服務(wù)來使用了。
    B. 目標(biāo)服務(wù)器上還沒有SDE用戶
    這種情形是指目標(biāo)服務(wù)器上還沒有sde登錄用戶,此時(shí)執(zhí)行上述的SID查詢,結(jié)果如下:
    Use sde
    go
    Select SID from sysusers where name = 'sde'
    Use master
    go
    select SID from sysxlogins where name = 'sde'
    SID
    -----------------------------------------------------------
    0x76695419BFAED41184FD00C04F8D0451
    (1 row(s) affected)
    SID
    -----------------------------------------------------------
    (0 row(s) affected)
    要矯正這種情況,需要首先到目標(biāo)服務(wù)器中添加sde登錄用戶,但是不要將sde數(shù)據(jù)庫的權(quán)限授予sde用戶。添加登錄用戶,使用"sp_addlogin"存儲(chǔ)過程和在企業(yè)管理器中使用登錄管理工具。比如:
    sp_addlogin 'sde','go','sde'
    然后需要運(yùn)行 "sp_change_users_login" 存儲(chǔ)過程來統(tǒng)一master內(nèi)dbo.sysxlogins表和恢復(fù)后用戶數(shù)據(jù)庫內(nèi)sysusers表中的sde用戶SID標(biāo)識(shí)。
    use sde
    go
    sp_change_users_login 'update_one','sde','sde'
    最后,可以執(zhí)行SID查詢來驗(yàn)證SID的一致性:
    Use sde
    Go
    Select SID from sysusers where name = 'sde'
    Use master
    Go
    select SID from sysxlogins where name = 'sde'
    SID
    -----------------------------------------------------------
    0xF6DFCA8E56B0D411850000C04F8D0451
    (1 row(s) affected)
    SID
    -----------------------------------------------------------
    0xF6DFCA8E56B0D411850000C04F8D0451
    (1 row(s) affected)
    經(jīng)過SDE用戶的SID的統(tǒng)一之后,就可以啟動(dòng)ArcSDE服務(wù)或者使用直接連接(direct connection)方式使用恢復(fù)后的空間數(shù)據(jù)了。

    posted @ 2006-11-28 20:13 Flyingis 閱讀(2715) | 評(píng)論 (1)編輯 收藏

    [DWR文檔] WEB-INF 參考

         摘要: DWR中文文檔--WEB-INF 參考

    翻譯的方式采用中英文對(duì)照,翻譯的文字不會(huì)完全和英文一一對(duì)照,主要是為了在不失原意的情況下保證中文的閱讀理解習(xí)慣,當(dāng)然,翻譯的過程需要大家的支持,翻譯不妥的地方盡請(qǐng)拍磚、指正。  閱讀全文

    posted @ 2006-11-18 09:34 Flyingis 閱讀(5295) | 評(píng)論 (0)編輯 收藏

    DWR 中文文檔

         摘要: 我是DWR初學(xué)者,雖然DWR入門簡單,但還是想嘗試翻譯一下DWR的部分文檔,翻譯過程中自己會(huì)有更多的思考,翻譯的方式采用中英文對(duì)照,翻譯的文字不會(huì)完全和英文一一對(duì)照,主要是為了在不失原意的情況下保證中文的閱讀理解習(xí)慣,當(dāng)然,翻譯的過程需要大家的支持,翻譯不妥的地方盡請(qǐng)拍磚、指正。

    Jet Mah已經(jīng)開始翻譯DWR文檔,我將在他未翻譯的文檔中摘取比較重要的章節(jié)進(jìn)行翻譯,也算是對(duì)開源盡一點(diǎn)綿薄之力。我已翻譯的部分在Java Tang中也會(huì)留言給出鏈接。  閱讀全文

    posted @ 2006-11-18 09:15 Flyingis 閱讀(8352) | 評(píng)論 (2)編輯 收藏

    中國計(jì)劃建設(shè)自己的衛(wèi)星導(dǎo)航系統(tǒng)

    ??? 2006年11月3日,中國在北京宣布計(jì)劃建立一套自己的衛(wèi)星導(dǎo)航系統(tǒng),整個(gè)系統(tǒng)包含35顆衛(wèi)星,并于2008年在亞洲區(qū)域投入運(yùn)行。該系統(tǒng)名稱為“Beidou”,將包括五顆對(duì)地靜止軌道衛(wèi)星和三十顆中距離地球軌道衛(wèi)星,新華社通訊員11月2日。

    ??? 據(jù)報(bào)道,整個(gè)衛(wèi)星導(dǎo)航系統(tǒng)將提供兩套服務(wù),其中免費(fèi)服務(wù)面向大眾,許可認(rèn)證服務(wù)面向軍事方面。面向商業(yè)客戶的衛(wèi)星系統(tǒng)服務(wù)將提供10米的定位精度,速度分辨率為0.2米/秒,而時(shí)間分辨率在50*十億分之一秒以內(nèi)。關(guān)于整套系統(tǒng)的費(fèi)用沒有詳細(xì)的報(bào)道。

    ??? 在此之前,中國已經(jīng)加入了歐空局35億歐元伽利略計(jì)劃研發(fā)衛(wèi)星導(dǎo)航系統(tǒng),以擺脫美國軍用全球衛(wèi)星導(dǎo)航系統(tǒng)的壟斷。

    ??? 詳細(xì)信息可以訪問(英文):
    ??? http://www.chinadaily.com.cn/china/2006-11/03/content_723687.htm

    posted @ 2006-11-14 22:26 Flyingis 閱讀(1326) | 評(píng)論 (2)編輯 收藏

    用 JavaScript 玩轉(zhuǎn) DOM Level 1

         摘要: DOM(The Document Object Model)將HTML轉(zhuǎn)換為XML文檔格式來表達(dá),為動(dòng)態(tài)HTML編程提供了一種優(yōu)雅的解決方案。DOM編程可以使用多種語言(Java中可以使用SAX進(jìn)行XML編程),不論大家使用何種服務(wù)器端技術(shù),JavaScript的DOM基礎(chǔ)編程還是需要掌握的,最常見的莫過于getElementById(),引用Prototype.js使用最多的也是$(""),但是要做好Web客戶端設(shè)計(jì),我們需要了解更多更細(xì)。

    當(dāng)前各種主流瀏覽器對(duì)DOM Level 1標(biāo)準(zhǔn)支持的相對(duì)較好,我們就來看看在JavaScript中如何玩轉(zhuǎn)DOM Level 1。  閱讀全文

    posted @ 2006-11-07 22:14 Flyingis 閱讀(5356) | 評(píng)論 (6)編輯 收藏

    [Design Pattern] The Decorator Pattern

         摘要: Decorator Pattern,看看魔獸中的山丘是怎么應(yīng)用這種模式的(個(gè)人設(shè)想)。  閱讀全文

    posted @ 2006-11-07 11:04 Flyingis 閱讀(3123) | 評(píng)論 (3)編輯 收藏

    清除 Trojan [轉(zhuǎn)載]

         摘要: 在網(wǎng)上找到的Trojan-Downloader.Win32.QQHelper.mo查殺過程,經(jīng)驗(yàn)證方法有效,特轉(zhuǎn)貼與大家分享。  閱讀全文

    posted @ 2006-10-24 16:38 Flyingis 閱讀(1624) | 評(píng)論 (0)編輯 收藏

    Firefox 2.0 正式提供下載,JavaScript 1.7 獲得支持

    ??? 現(xiàn)在 Mozilla官方網(wǎng)站 還沒有Firefox 2.0正式版的下載鏈接,但驅(qū)動(dòng)之家已經(jīng)開始提供下載鏈接,包括 Mozilla官方FTP ,和 mydrivers網(wǎng)站上本地下載 ,迫不及待的朋友可以立即開始體驗(yàn)Firefox 2.0。

    ??? 我用Firefox除了支持開源軟件外,還有一個(gè)重要用途就是調(diào)試JavaScript,我之前的一篇隨筆《
    JavaScript 調(diào)試工具 》簡單介紹了JavaScript的調(diào)試?yán)?。隨著Firefox 2.0正式發(fā)布,JavaScript 1.7也開始在最新版的Firefox中正式獲得支持,雖然正式項(xiàng)目中還不大可能用到JavaScript 1.7,但做JavaScript開發(fā)的朋友肯定會(huì)給予JavaScript更多的關(guān)注。

    ??? JavaScript 1.7在1.6的基礎(chǔ)上加入了新的特性,具體大家可以參照這里:

    ??? --
    New in JavaScript 1.6 --

    ??? --
    New in JavaScript 1.7 --

    posted @ 2006-10-24 14:57 Flyingis 閱讀(1325) | 評(píng)論 (0)編輯 收藏

    IE7 正式版推出

         摘要: IE7 官方正式版已經(jīng)推出,看看它為我們帶來了什么……  閱讀全文

    posted @ 2006-10-19 09:25 Flyingis 閱讀(2782) | 評(píng)論 (7)編輯 收藏

    [翻譯] 如何在 JavaScript 中實(shí)現(xiàn)拖放(下)

         摘要: 終于完成了全文的翻譯,由于時(shí)間比較參促,文章沒有過多的校正與潤色,閱讀過程中難免會(huì)有些許生硬或不準(zhǔn)確的感覺,請(qǐng)大家見量并指出,方便他人閱讀。

    原文作者將拖放功能的實(shí)現(xiàn)分步講解,其核心的地方在于移動(dòng)和放置元素時(shí),鼠標(biāo)、移動(dòng)元素、目標(biāo)元素關(guān)系的處理,只要這個(gè)問題處理好了,代碼就很容易理解,譯文僅供輔助參考之用,demo可以參考原文鏈接。  閱讀全文

    posted @ 2006-10-15 17:03 Flyingis 閱讀(6672) | 評(píng)論 (19)編輯 收藏

    [翻譯] 如何在 JavaScript 中實(shí)現(xiàn)拖放(中)

         摘要: 上一篇文章介紹了移動(dòng)頁面元素所涉及到的捕獲鼠標(biāo)移動(dòng)和鼠標(biāo)點(diǎn)擊的相關(guān)問題,本段文章將介紹如何移動(dòng)和放置頁面元素。  閱讀全文

    posted @ 2006-10-13 14:53 Flyingis 閱讀(5302) | 評(píng)論 (2)編輯 收藏

    [翻譯] 如何在 JavaScript 中實(shí)現(xiàn)拖放(上)

         摘要: JavaScript擅長于修改頁面中的DOM元素,但是我們使用JavaScript通常只是實(shí)現(xiàn)一些簡單功能,例如實(shí)現(xiàn)圖片的翻轉(zhuǎn),網(wǎng)頁中的標(biāo)簽頁,等等。這篇文章將向你展示如何在頁面中,對(duì)創(chuàng)建的元素實(shí)現(xiàn)拖放。
    (譯者注:原文發(fā)布已有一段時(shí)間,但感覺作者思路清晰明了,值得一讀。文章一次看完比較好,但時(shí)間有限,我會(huì)盡快將剩下部分補(bǔ)上)  閱讀全文

    posted @ 2006-10-11 16:20 Flyingis 閱讀(7412) | 評(píng)論 (2)編輯 收藏

    [Design Pattern] The Observer Pattern

         摘要: 在討論設(shè)計(jì)模式時(shí),我喜歡用英文名來稱呼各種模式,覺得這樣會(huì)更為準(zhǔn)確一些。設(shè)計(jì)模式在Java開發(fā)領(lǐng)域已經(jīng)是炙手可熱的山芋,披上了這件戰(zhàn)袍,似乎就可以在程序設(shè)計(jì)中立于不敗之地,不僅可以規(guī)范自己的武功招式,還能夠看清其他高手的武功套路。在接下來[Design Pattern]一系列的隨筆中,我將系統(tǒng)的研究各種常用的設(shè)計(jì)模式,主要的參考資料是《Head First Design Patterns》,主要的思路是,介紹基本概念(雖然做Java開發(fā)的熟手已經(jīng)對(duì)此熟悉的不得了),將思維轉(zhuǎn)換為代碼設(shè)計(jì),談?wù)勗趯?shí)際中開發(fā)的應(yīng)用,也許還會(huì)有各種模式的弊端。  閱讀全文

    posted @ 2006-09-30 16:40 Flyingis 閱讀(3018) | 評(píng)論 (1)編輯 收藏

    GeoRSS 應(yīng)用方案

    ????作者:Flyingis

    ??? GeoRSS提供了一種地理位置搜索與聚合的方案,并且可以用于地理分析,例如在指定地點(diǎn)10公里范圍內(nèi),所有可能受地震影響的地物的信息,在自己出行道路中出現(xiàn)交通事故的位置點(diǎn),等等。只要RSS包含了地理位置信息,就可以將應(yīng)用進(jìn)行擴(kuò)展。

    ??? 那么哪些技術(shù)方案可以支持GeoRSS呢?目前ESRI已經(jīng)支持通過JavaScript API來使用GeoRSS,我們可以不用將GeoRSS導(dǎo)入到ArcWeb Explorer中,僅僅將GeoRSS URL鏈接輸入到搜索框即可。如下圖所示(圖片來自于James Fee的博客)。


    ??? 遺憾的是,ESRI目前僅支持點(diǎn)的聚合查詢,并且使用GeoRSS Feeds還存在一些bug。

    ??? 另外一種方案,就是結(jié)合Microsoft Virtual Earth API來使用GeoRSS,這是Virtual Earth API 3.0中新增的一項(xiàng)強(qiáng)大的功能。GeoRSS層可以很容易的使用基于WGS84 lat/long坐標(biāo)系,或GeoRSS Simple語法的GeoRSS XML文件,加入一組點(diǎn)到地圖上,具體的方法可以參考這兩篇文章:

    ??? http://blogs.msdn.com/keithkin/archive/2006/09/19/761333.aspx
    ??? http://blogs.msdn.com/keithkin/archive/2006/09/19/761573.aspx

    ????在Keith的demo中,他實(shí)現(xiàn)了將鼠標(biāo)停留在地圖上某標(biāo)注點(diǎn),其相關(guān)信息就會(huì)反應(yīng)出來,示例如下:

    ??? http://krkinnan.members.winisp.net/samples/georss/hurricaneivan.html

    ??? 關(guān)于GeoRSS:http://www.tkk7.com/flyingis/archive/2006/09/25/71823.html

    posted @ 2006-09-28 11:15 Flyingis 閱讀(1982) | 評(píng)論 (0)編輯 收藏

    GeoRSS

    ??? 作者:Flyingis

    ??? RSS已經(jīng)成為互聯(lián)網(wǎng)上共享知識(shí)、分享信息的最為主要手段之一,通過訂閱RSS,我們可以從網(wǎng)絡(luò)的海量信息中獲取我們所關(guān)心的數(shù)據(jù),包括文字、圖片等。將地址信息通過一種交互的方式,使得應(yīng)用可以請(qǐng)求、聚合、分享、發(fā)布Feeds,成為地理信息在未來一段時(shí)間的一個(gè)熱點(diǎn)。

    ??? GeoRSS成為了地理信息數(shù)據(jù)Feed資源化的先鋒隊(duì)員,GeoRSS存在兩種編碼方式,分別是GeoRSS GML和GeoRSS Simple。前者是標(biāo)準(zhǔn)的GML應(yīng)用,相比后者支持更為廣泛的特性,可以和Atom 1.0、RSS 2.0、RSS 1.0一起使用,并且它還可以在非RSS XML編碼的環(huán)境中使用。GeoRSS Simple顯得更為輕便,當(dāng)然在擴(kuò)展性能上就會(huì)有所限制。

    ??? 舉個(gè)例子說明這兩者的區(qū)別,例如我們需要將一個(gè)點(diǎn)進(jìn)行XML編碼,使用GML和Simple兩種方式的格式分別如下:

    ??? Simple
    <georss:point>45.256?-71.92</georss:point>

    ??? GML
    <georss:where>
    ??
    <gml:Point>
    ????
    <gml:pos>45.256?-71.92</gml:pos>
    ??
    </gml:Point>
    </georss:where>

    ??? 具體的介紹,可以參考GeoRSS官方網(wǎng)站:http://www.georss.org/。有時(shí)間我會(huì)對(duì)GeoRSS模型與使用方法進(jìn)行分析。

    posted @ 2006-09-25 20:58 Flyingis 閱讀(2573) | 評(píng)論 (0)編輯 收藏

    Firefox 2.0 rc1

    ??? Mozilla Firefox 2.0 rc1已經(jīng)可以下載測試了,它包含了許多新的變化,具體的參考這篇文章:
    http://tech.cybernetnews.com/2006/09/12/another-round-of-theme-updates-for-firefox-2/

    ??? 從這個(gè)鏈接可以下載到最新的版本:
    http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2.0rc1-candidates/rc1/?

    ??? 據(jù)Jithen Singh介紹,Mozilla Firefox 2.0 rc1對(duì)
    ArcGIS Server 9.2 rc1似乎提供了更好的支持。

    ??? 更新:剛在mydrivers.com上面看到了一篇文章:《IE7 RC1 VS Firefox2 RC1》。比較有意思的對(duì)比測試。(2006-9-29)

    posted @ 2006-09-25 09:25 Flyingis 閱讀(1180) | 評(píng)論 (1)編輯 收藏

    JavaScript 隨筆匯集

         摘要: 更新日期:2006-11-18  閱讀全文

    posted @ 2006-09-18 15:31 Flyingis 閱讀(4095) | 評(píng)論 (9)編輯 收藏

    [翻譯] "this" of JavaScript

         摘要: this是JavaScript中功能最強(qiáng)大的關(guān)鍵字之一。不幸的是,如果你不知道它具體怎么工作,你將很難正確使用它。原文的題目是《The this keyword》。
    翻譯不恰當(dāng)?shù)牡胤秸?qǐng)大家指出。  閱讀全文

    posted @ 2006-09-15 15:02 Flyingis 閱讀(3525) | 評(píng)論 (3)編輯 收藏

    JavaScript 對(duì)象的反射及應(yīng)用

         摘要: Java和.NET都有著比較完善的反射機(jī)制,用來處理未知的對(duì)象并獲取它們的屬性和方法。JavaScript雖然沒有完善的反射體系,但在編程的時(shí)候還是可以通過代碼設(shè)計(jì)來實(shí)現(xiàn)類似反射的基本功能。  閱讀全文

    posted @ 2006-09-12 18:50 Flyingis 閱讀(5853) | 評(píng)論 (5)編輯 收藏

    使用 JSON 創(chuàng)建對(duì)象

    ??? 作者:Flyingis

    ??? 一般在JavaScript中可以調(diào)用Object類的構(gòu)造函數(shù)來創(chuàng)建對(duì)象:

    var?obj?=?new?Object();

    ??? 并且可以將對(duì)象附加到其他對(duì)象上,類似于C++中的對(duì)象數(shù)組,例如,某大學(xué)里擁有多個(gè)專業(yè),每個(gè)專業(yè)都有一位主任和多名講師組成,在JavaScript中可以這樣來描述:

    var?university?=?new?Object();
    university.specialty?
    =?new?Array();
    university.specialty[
    0]?=?new?Object();

    //該專業(yè)的主任是Sam
    university.specialty[0].director.name?=?"Sam";
    university.specialty[
    0].director.age?=?40;

    //該專業(yè)的兩位講師分別是Tom和Jerry
    university.specialty[0].instructor?=?new?Array();

    var?tom?=?new?Object();
    tom.name?
    =?"Tom";
    tom.age?
    =?32;
    university.specialty[
    0].instructor[0]?=?tom;

    var?jerry?=?new?Object();
    jerry.name?
    =?"Jerry";
    jerry.age?
    =?"35";
    university.specialty[
    0].instructor[1]?=?jerry;

    ??? 可以看出,當(dāng)對(duì)主任和講師有更詳細(xì)的描述時(shí),這樣一層層的代碼給人感覺非常繁瑣,許多代碼都是重復(fù)編寫,不但增加了代碼量,并且還很枯燥。

    ??? JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,它的優(yōu)點(diǎn)就是便于讀寫,可以將JavaScript中的對(duì)象及其賦值寫成鍵值對(duì)的形式,例如上面代碼通過JSON來描述可以寫成:

    var?university?=?{
    ??specialty?:?[
    ??
    {
    ????director?:?[
    ??????name?:?
    "Sam",
    ??????age?:?
    40
    ????],
    ????instructor?:?[
    ??????
    {name?:?"Tom",?age?:?32}
    ??????
    {name?:?"Jerry",?age?:?35}
    ????]
    ??}

    ??]
    }

    ??? 這樣來描述整個(gè)對(duì)象的內(nèi)部結(jié)構(gòu)顯得更為簡潔、清晰,除了聲明屬性和對(duì)象外,還可以使用JSON創(chuàng)建的對(duì)象定義成員函數(shù)。當(dāng)然,不論采用何種方法來描述,目的都是為了更高效直觀的編寫JavaScript代碼,我們可以使用JSON定義一個(gè)對(duì)象,然后使用JavaScript添加屬性,也可以使用JSON來擴(kuò)展JavaScript所定義的對(duì)象,創(chuàng)建任意復(fù)雜的對(duì)象層次。

    posted @ 2006-09-11 19:33 Flyingis 閱讀(3928) | 評(píng)論 (1)編輯 收藏

    博客顯示的問題(BlogJava 系統(tǒng) bug)

    ??? 我的博客里全是江南白衣的隨筆。

    ??? 今天已經(jīng)是第二次出現(xiàn)這種情況,進(jìn)入我的博客隨筆全部重復(fù)為江南白衣的一篇隨筆,但博客上面的標(biāo)題和右邊的日期、公告、鏈接、回復(fù)等等都還是我自己的,今天上午11:32出現(xiàn)第一次的時(shí)候感覺是緩存的問題,偶爾一次沒怎么在意,現(xiàn)在下午14:30又出現(xiàn)了一次,dudu看看有沒有問題。

    ??? 出現(xiàn)問題時(shí)的截圖:http://www.tkk7.com/images/blogjava_net/flyingis/question2.gif

    posted @ 2006-09-05 14:47 Flyingis 閱讀(1055) | 評(píng)論 (2)編輯 收藏

    BlueViewer 地圖加載分析(C#)

         摘要: BlueViewer是基于.NET Link進(jìn)行ArcIMS二次開發(fā)的一個(gè)實(shí)例,里面包含了WebGIS最基本的一些功能。全文對(duì)BlueViewer程序啟動(dòng)地圖加載的整個(gè)過程進(jìn)行了分析,可以作為.NET Link初學(xué)參考。  閱讀全文

    posted @ 2006-09-03 23:14 Flyingis 閱讀(2714) | 評(píng)論 (5)編輯 收藏

    關(guān)于 BOM

    ??? 作者:Flyingis

    ??? BOM全稱是Browser Object Model,在不依賴于網(wǎng)頁內(nèi)容的情況下提供和瀏覽器視窗交互的對(duì)象,下圖顯示了BOM的組成結(jié)構(gòu)。

    BOM-Structure.gif


    ??? 可以看出,window是BOM的核心對(duì)象,在使用window中所有對(duì)象時(shí),可以省去window,例如window.document可以寫成document,window.frames[0]可以寫成frame[0]。為了對(duì)視窗進(jìn)行操作,BOM提供了四種方法:moveBy(dx,dy)、moveTo(x,y)、resizeBy(dw,dh)、resizeTo(w,h),這四種方法比較簡單,具體使用可以參考相關(guān)資料。

    ??? BOM中沒有特別復(fù)雜的概念,但需要注意的是,現(xiàn)在BOM還沒有一個(gè)統(tǒng)一的標(biāo)準(zhǔn),各種瀏覽器對(duì)BOM的支持程度也不一,相同的功能也許其對(duì)象描述并不相同,即使是BOM結(jié)構(gòu)本身也存在問題,如location既存在于window下的第二級(jí)結(jié)構(gòu)中,也存在于window.document下的第三級(jí)結(jié)構(gòu)中,但它們的功能描述是相同的。在目前情況下,只有針對(duì)用戶所使用的瀏覽器來定制代碼,或?yàn)椴煌臑g覽器分別進(jìn)行代碼描述。

    posted @ 2006-09-01 17:22 Flyingis 閱讀(1899) | 評(píng)論 (0)編輯 收藏

    SVG 中使用 JavaScript

    ??? 作者:Flyingis

    ??? SVG(Scalable Vector Graphics)是一種基于XML的語言,用來在Web中繪制矢量圖形。當(dāng)前,除了Mozilla 2.0外,沒有一款瀏覽器在本質(zhì)上支持SVG,都需要插件來顯示SVG圖形,著名的有Adobe公司和Corel公司的SVG插件。

    ??? 一個(gè)簡單的SVG

    <?xml?version="1.0"?>
    <!DOCTYPE?svg?PUBLIC?"-//W3C//DTD?SVG?1.0//EN"
    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"
    >
    <svg?xmlns="http://www.w3.org/2000/svg"?xmlns:xlink=http://www.w3.org/1999/xlink?width="100%"?height="100%">
    <desc>
    顯示一個(gè)正方形和一個(gè)圓形
    </desc>
    <defs>
    <rect?id="myrect"?width="150"?height="150"?fill="red"?x="15"?y="15"?stroke="black"/>
    <circle?id="mycircle"?r="75"?fill="white"?stroke="black"?cx="150"?cy="150"/>
    </defs>
    <use?xlink:href="#myrect"?/>
    <use?xlink:href="#mycircle"?/>
    </svg>

    ??? 為了更好的理解SVG中的標(biāo)簽,可以和HTML標(biāo)簽作個(gè)簡單的比較,SVG中的<svg/>和HTML中的<html/>類似,<desc/>和<title/>類似,<g/>和<div/>類似。

    ??? 在SVG中可以使用JavaScript,當(dāng)需要遵循一些規(guī)則:必須使用type屬性;language屬性是非法的;使用特殊XML字符時(shí)可以使用CDATA(SVG和CDATA都遵循XML規(guī)范);xlink:href替換src。

    <?xml?version="1.0"?>
    <!DOCTYPE?svg?PUBLIC?"-//W3C//DTD?SVG?1.0//EN"
    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"
    >
    <svg?xmlns="http://www.w3.org/2000/svg"?xmlns:xlink=http://www.w3.org/1999/xlink?width="100%"?height="100%">
    <desc>
    顯示一個(gè)正方形和一個(gè)圓形
    </desc>
    <![CDATA[
    ??function?comp(a,?b)?{
    ????if?(a?>?b)
    ??????alert("a?is?bigger?than?b");
    ????else
    ??????alert("a?is?not?bigger?than?b");
    ??}
    ]]>
    <defs>
    <rect?id="myrect"?width="150"?height="150"?fill="red"?x="15"?y="15"?stroke="black"/>
    <circle?id="mycircle"?r="75"?fill="white"?stroke="black"?cx="150"?cy="150"/>
    </defs>
    <use?xlink:href="#myrect"?/>
    <use?xlink:href="#mycircle"?/>
    </svg>

    ??? 在SVG中使用JavaScript可以寫在如下幾個(gè)位置:<desc/>標(biāo)簽之后;在<defs/>中;在<g/>標(biāo)簽之前。

    posted @ 2006-08-31 20:06 Flyingis 閱讀(4048) | 評(píng)論 (0)編輯 收藏

    瀏覽器中的 JavaScript

    ??? 作者:Flyingis

    ??? 之前寫過不少JavaScript基礎(chǔ)的隨筆,基本上都是針對(duì)其語法、語言結(jié)構(gòu)來論述的。但是,現(xiàn)在使用JavaScript最多的地方是在瀏覽器中,這里就簡單談?wù)劄g覽器中使用JavaScript。

    ??? 在瀏覽器中使用JavaScript分為內(nèi)聯(lián)和外聯(lián)兩種方法,和CSS比較相似。

    ??? 內(nèi)聯(lián)

    <html>
    <head>
    <title>內(nèi)聯(lián)</title>
    <script?language="JavaScript">
    ??
    function?message()?{
    ????alert(
    "Good?Day?!");
    ??}

    </script>
    </head>
    <body></body>
    </html>

    ??? 外聯(lián)

    <html>
    <head>
    <title>外聯(lián)</title>
    <script?language="JavaScript"?src="../path/external.js"></script>
    </head>
    <body></body>
    </html>

    ??? 在external.js中,可以包含任何js代碼,例如類的定義、方法函數(shù)等。相比之下,使用外聯(lián)方法引用js文件可以做到更安全、代碼更容易管理、節(jié)省資源開銷。之所以能節(jié)省資源開銷,是因?yàn)楫?dāng)兩個(gè)頁面同時(shí)使用一個(gè)js文件時(shí),該js文件只會(huì)被下載一次,避免的相同代碼重復(fù)下載增加頁面的代碼量。

    ??? 網(wǎng)頁中的JavaScript源代碼一般放置在<head></head>區(qū)域,當(dāng)寫在<body></body>中時(shí),一旦頁面加載就會(huì)執(zhí)行body中的JavaScript代碼,無法人工控制代碼的執(zhí)行。如果需要頁面加載時(shí)同時(shí)執(zhí)行JavaScript方法,則需要在head中定義該方法,否則系統(tǒng)會(huì)報(bào)錯(cuò)。

    ??? JavaScript最初只有一種瀏覽器的支持,因此,需要一種方法將JavaScript代碼隱藏在老的瀏覽器中,避免對(duì)JavaScript解析產(chǎn)生錯(cuò)誤,這就是我們過去經(jīng)??梢钥吹降?,在代碼前后加上<!--><//-->,在現(xiàn)在看來,這種方法已經(jīng)沒有必要了,一是因?yàn)槭褂猛饴?lián)方式引用JavaScript代碼更加合適,二是當(dāng)前主流瀏覽器對(duì)JavaScript的支持已經(jīng)越來越多,當(dāng)然也就能正確識(shí)別JavaScript代碼。

    ??? 在瀏覽網(wǎng)頁時(shí),當(dāng)某張圖片無法顯示時(shí),可以通過文字來替換它,當(dāng)網(wǎng)頁不支持某段JavaScript代碼時(shí),我們也能通過一種替代的方式來提醒用戶自己的瀏覽器不支持JavaScript或禁止了JavaScript,即使用<noscript></noscript>,放置在body區(qū)域中。

    ??? 隨著XHTML(eXtensible HTML)標(biāo)準(zhǔn)的出現(xiàn),<script>標(biāo)簽也出現(xiàn)了一些變化,過去我看到有的頁面在<script>標(biāo)簽中使用languange屬性,有的使用type屬性,當(dāng)時(shí)沒怎么注意,其實(shí)后者正是XHTML出現(xiàn)后所定義的,可以為JavaScript設(shè)置mime類型為"text/javascript"。

    ??? XHTML帶來的另外一個(gè)變化就是使用CDATA,使用CDATA可以在表達(dá)式中使用一些特殊字符,增強(qiáng)代碼的可讀性,避免使用"&lt"、"&gt"來分別表示小于和大于。

    <script?type="text/javascript">
    <![CDATA[
    ??
    function?comp(a,?b)?{
    ????
    if?(a?>?b)
    ??????alert(
    "a?is?bigger?than?b");
    ????
    else
    ??????alert(
    "a?is?not?bigger?than?b");
    ??}

    ]]
    >
    </script>

    ??? 代碼中大于和引號(hào)均使用了我們常見的書寫形式,避免了使用XML實(shí)體所帶來的閱讀上的困難。當(dāng)然,這也存在舊的瀏覽器無法識(shí)別CDATA的問題,需要我們加入注釋來隱藏CDATA標(biāo)簽。大家可以想到,最好的辦法還是使用外聯(lián)的方法使用JavaScript。

    <script?type="text/javascript">
    //<![CDATA[
    ??function?comp(a,?b)?{
    ????
    if?(a?>?b)
    ??????alert(
    "a?is?bigger?than?b");
    ????
    else
    ??????alert(
    "a?is?not?bigger?than?b");
    ??}

    //]]>
    </script>

    ??? 雖然部分瀏覽器還不完全支持XHTML,但我們應(yīng)該盡量按照XHTML標(biāo)準(zhǔn)來書寫代碼,使得該標(biāo)準(zhǔn)能夠獲得更大更廣泛的支持。

    posted @ 2006-08-31 20:01 Flyingis 閱讀(2737) | 評(píng)論 (0)編輯 收藏

    正則表達(dá)式--簡單模式

    ??? 作者:Flyingis

    ??? 正則表達(dá)式除了用來匹配一些特殊字符外,還有許多其他的作用。Metacharacters,character classes和quantifiers都是正則表達(dá)式語法中的重要組成部分,可以用來實(shí)現(xiàn)更強(qiáng)大的功能。?

    ??? Metacharacters

    ??? 正則表達(dá)式的Metacharacters主要包括:

    ??? ([{\^$|)?*+.

    ??? 當(dāng)需要使用這些符號(hào)的時(shí)候,需要在前面加上一個(gè)反斜杠"\",例如:

    var?reg?=?/\?/;
    var?reg?=?new?RegExp("\\?");

    ??? 一個(gè)字符的表示可以使用它的文字符號(hào),也可以使用ASCII碼或Unicode碼來代碼它。例如,當(dāng)一個(gè)字符使用ASCII碼表示的時(shí)候,我們需要在一個(gè)兩位十六進(jìn)制的編碼前加上"\x"。

    var?name?=?"apple";
    var?regName?=?/\x61/;
    alert(regName.test(name));??
    //輸出"true"

    ??? 當(dāng)然,使用十進(jìn)制來表示字母a。

    var?reg?=?/\141/;

    ??? 使用Unicode來表示一個(gè)字符,需要四位十六進(jìn)制的編碼,例如\u0062代表b。

    var?s?=?"big";
    var?reg?=?/\u0062/;
    alert(reg.test(s));??
    //輸出為"true"

    ??? 下面一段代碼可以到達(dá)同樣的效果:

    var?s?=?"big";
    var?reg?=?new?RegExp("\\u0062");
    alert(reg.test(s));??
    //輸出為"true"

    ??? 另外,有一些預(yù)定義好的特殊字符,用來表示特殊的含義。如:“\t,\n,\r,\f,\a,\e,\cX,\b,\v,\0”。

    //將用戶輸入的新一行的所有字符都刪除
    var?str?=?strWithNewLines.replace(/\n/g,?"");

    ??? Character classes
    ?
    ??? Character classer代表著需要匹配的一組字符,將需要匹配的字符放在一對(duì)中括號(hào)里,正則表達(dá)式將能有效的識(shí)別第一個(gè)字符,第二個(gè)字符,等等。

    ??? Simple classes

    ??? 如果需要同時(shí)匹配"pig"和"big",可以使用simple character class來實(shí)現(xiàn):

    var?str?=?"pig,?big";
    var?reg?=?/[pb]ig/gi;
    var?arr?=?str.match(reg);

    ??? 此時(shí),arr中的數(shù)據(jù)包括"pig"和"big"。當(dāng)然,使用ASCII或Unicode來表示p或b同樣可行。

    ??? Negation classes

    ??? 有時(shí)我們需要匹配除了少數(shù)幾個(gè)字符外的所有字符,在這種情況下,我們可以使用negation class來進(jìn)行匹配。例如,匹配除了a和b之外所有的字符,可以表示為[^ab]。在上一個(gè)例子中,將reg表示為/[^p]ig/gi,則結(jié)果中將過濾掉pig。

    ??? Range classes

    ??? 顧名思義,range class就是用來指定某個(gè)范圍的匹配字符,例如從a到z可以表示為[a-z],從1到10可以表示為[1-10]。如果將range class指定的字符排除在外,可以使用[^1-10],表示除了1到10范圍外的所有字符。

    ??? Combination classes

    ??? 舉一個(gè)例子就清楚了,現(xiàn)在需要匹配從1到10,從a到g,并且加上新一行的所有字符,可以表示為[1-10a-g\n]。注意,在[]里不允許再嵌套[]。
    ??
    ??? Predefined classes

    ??? 因?yàn)橛性S多樣式都不停在重復(fù)使用,因此一組預(yù)定義好的character classes可以用來簡化一些比較復(fù)雜的類型。具體的可以參考相關(guān)資料,下面舉個(gè)簡單的例子:
    ??
    var?str?=?"8743?apple";
    var?reg?=?/[0-9][0-9][0-9]/;
    alert(reg.test(str));??
    //輸出為"true"
    ??
    ??? 使用predefined class可以寫成:

    var?str?=?"8743?apple";
    var?reg?=?/\d\d\d/;
    alert(reg.test(str));??
    //輸出為"true"

    ??? Quantifiers
    ?
    ??? Quantifiers能夠指定某種匹配方式需要進(jìn)行多少次,包括指定確定的次數(shù),或不確定的次數(shù)如至少多少次。

    ??? Simple quantifiers

    ??? 下面列表中,指定了某種模式需要重復(fù)進(jìn)行的次數(shù),部分符號(hào)和閉包的意義一樣:

    simple quantifiers.gif

    ??? 例如var reg = /b?read/就可以表示bread或read。
    ??
    ??? 三種正則表達(dá)式的quantifiers

    ??? Greedy quantifier: 對(duì)一個(gè)目標(biāo)串進(jìn)行匹配搜索,當(dāng)在目標(biāo)串中沒有相匹配的字符串時(shí),就刪去目標(biāo)串的最后一個(gè)字符,再次進(jìn)行匹配,如果沒有發(fā)現(xiàn)則再刪去最后一個(gè)字符,依此類推,最后的結(jié)果要么已經(jīng)將字符匹配上,要么目標(biāo)串已經(jīng)為空。

    ??? Reluctant quantifier: 和greedy quantifier搜索風(fēng)格相反。Reluctant quantifier從目標(biāo)串的第一個(gè)字符開始對(duì)目標(biāo)串進(jìn)行搜索,當(dāng)沒有匹配時(shí),給目標(biāo)串加上一個(gè)字符,再次進(jìn)行搜索,依此類推,直到在目標(biāo)串上匹配成功,或整個(gè)目標(biāo)串都被搜索但仍然沒有完成匹配。

    ??? Possessive quantifier: 直接對(duì)整個(gè)目標(biāo)串進(jìn)行匹配,要么匹配上,要么匹配失敗,它只進(jìn)行一次匹配。

    ??? 那么如何判斷這三種不同的quantifiers呢?主要就是根據(jù)問號(hào)(?)星號(hào)(*)和加號(hào)(+)的組合來判斷的,如下表所示。

    three quantifiers.gif

    ??? 需要注意的是,possessive quantifier在目前主流的瀏覽器中都不被支持,IE和Opera在碰到possessive quantifier時(shí)將會(huì)拋出異常,Mozilla雖然不會(huì)發(fā)生錯(cuò)誤,但會(huì)將它作為greedy quantifier來對(duì)待。


    ??? 相關(guān)鏈接:正則表達(dá)式--JavaScript 實(shí)現(xiàn)基礎(chǔ)

    posted @ 2006-08-11 16:09 Flyingis 閱讀(3173) | 評(píng)論 (0)編輯 收藏

    組裝電腦與品牌機(jī)

         摘要: 最近開始在.NET平臺(tái)下進(jìn)行工作,Visual Studio 2005的高效、易用及強(qiáng)大的功能都給我留下了深刻的印象,但在VS2005下進(jìn)行一些基礎(chǔ)操作的時(shí)候,感覺自己好像在做工業(yè)設(shè)計(jì),有時(shí)自己就會(huì)想,面對(duì)Java 和.NET,就好像是到電腦城去購買電腦一樣,是選擇DIY,還是選擇品牌整機(jī)?不管怎樣,充分利用已有平臺(tái)進(jìn)行深層次開發(fā),把握對(duì)架構(gòu)的理解,就顯得更為重要。  閱讀全文

    posted @ 2006-08-11 09:16 Flyingis 閱讀(2553) | 評(píng)論 (9)編輯 收藏

    主站蜘蛛池模板: tom影院亚洲国产一区二区| 无码一区二区三区免费视频| 波多野结衣免费视频观看| 亚洲Av永久无码精品一区二区| 两性刺激生活片免费视频| 亚洲AV成人噜噜无码网站| 亚洲福利精品电影在线观看| 曰批免费视频播放免费| 久久精品国产亚洲7777| 成人免费av一区二区三区| 亚洲狠狠婷婷综合久久久久| 久久精品无码精品免费专区| 亚洲精品福利网泷泽萝拉| 成年女人18级毛片毛片免费观看| 亚洲不卡在线观看| 中文字幕精品亚洲无线码一区应用| A片在线免费观看| 亚洲妇女水蜜桃av网网站| 女人与禽交视频免费看| 特级做a爰片毛片免费看| 亚洲精品国产精品乱码不卡√| 成人免费无遮挡无码黄漫视频| 最近免费mv在线观看动漫| 国产综合成人亚洲区| 亚洲国产无套无码av电影| 国产公开免费人成视频| 日韩精品无码免费专区网站| 亚洲av无码无线在线观看| 亚洲综合色一区二区三区小说| 亚洲综合精品网站在线观看| 嫩草影院在线播放www免费观看 | 亚洲人AV在线无码影院观看| 免费在线观看a级毛片| 久久经典免费视频| 最近2019年免费中文字幕高清| 亚洲天然素人无码专区| 伊人久久综在合线亚洲91| 暖暖日本免费在线视频| 日本免费在线中文字幕| 本免费AV无码专区一区| 免费激情网站国产高清第一页 |