blog.Ring.idv.tw

Flex

Google Street View 心得

Google在今日正式對外開放在台灣的街景服務(Google Street View),根據幕後秘辛的說明,Google街景拍攝車的上頭主要使用「9」部朝向不同方向的照相機所組成,以提供「水平 360°」和垂直「290°」的街道全景圖,雖然目前只有提供台北地區的街景,不過未來還會有下述地點:

P.S. 筆者幼時的家鄉「鹿港」居然也包含在內 ^^

雖然台灣街景服務今天才剛正式開放,不過已經有許多先行者分享了相關心得(請見底下相關資訊),所以本篇的介紹傾向從Web的角度來看。

Google Street View - 淡江中學

筆者以不能說的秘密電影拍攝地「淡江中學」來介紹,透過上圖的影像可以得知,左方側欄是提供Google Maps的相關資訊,右方側欄則是一個採用Flash動畫的街景服務,利用Firefox外掛Firebug的資訊攔截,在XHR的面版上可以得知有三個請求,其一就是提供左方側欄資訊的JSON資料交換格式(實際範例)。

第二個應該是提供可替換的「衣夾人」組態設定(這個名字的由來是因為它的形狀像一個衣夾。),他出現在「Google 地圖」視窗左側的縮放工具列上方。若他變成黃色,即表示目前的位置可提供「街景服務」,從這個實際例子中可以得知,裡頭包含了五個不同的衣夾人圖形,不過筆者實際測試的結果,目前所提供的五個圖形URL只有兩個是正確的,它們分別為「Legopeg」和「Panda」,這部份未來也許是可以替換的。

至於最後一個請求則是提供右側Flash形式的街景服務中的XML文字資訊(如上圖:真理街),這部份應該是直接透過街景服務的Flash直接下請求(筆者猜測),透過此Flash動畫資訊中的metadata得知它是採用Adobe Flex 3開發的,此動畫裡頭包含了11張基本工具列的影像資訊:

至於實際的街景影像則是一張張512*512由Google處理過的JPEG影像去組合起來的(如:實際影像),而關於如何組合這樣的全景影像可參考The Stanford CityBlock Project,最後暫且不論Google為何採用Flash來呈現街景服務,Flash在網路上不可或缺的地位又提升了不少。

附帶提一下,Google的伺服器不只多~ 主機名稱也挺多的,上述這些請求的伺服器主機名稱就有「gws」(這比較好猜)、「LocalTrends/1.0」、「mfe」和「Alleycat Server 1.0」(野貓?)

相關資訊

Google Maps開放台灣版街景地圖(Street View)

oogle Maps Street View 台北街景地圖上線&!上網遊覽台北101 | 電腦玩物

台北的Google Street View(Google街景)上線了!

iPhone上的Google Street View (Google街景)

2009-08-18 23:29:49 | Add Comment

利用swfdump反組譯ActionScript 3.0

Open-Source Flex SDK project 提供了一個命令列的小工具,稱為:「swfdump」,我們可以用它來反組譯包含ActionScript 3.0的SWF檔案,不過要利用此工具之前~ 必須先做一些相關的處理。

swfdump建置步驟

Step 1. 請設置好你的Apache Ant,並設好「Path」環境變數。

Step 2. 確認你的「JAVA_HOME」環境變數已經指到你的JDK目錄夾位置。

Step 3. 請下載Flex SDK的原始碼,可參考「Flex 3 is Now Open Source !!」。

Step 4. 切換工作目錄至Flex SDK原始碼中的「trunk\modules\swfutils」,並輸入「ant」來編譯swfutils底下所有的Java程式並打包。

cd c:\flexsrc\trunk\modules\swfutils
ant

Step 5. 切換至「trunk\bin」,然後進行反組譯「helloworld.swf」。

(這裡我們用Flash CS3開發一個含「trace("Hello World");」的測試檔案)

cd c:\flexsrc\trunk\bin
swfdump -abc helloworld.swf

接著你就可以看到反組譯後的結果了~

…………………
   01 02 01 0A 0B 0A    function helloworld_fla:MainTimeline::helloworld_fla:frame1():
    maxStack:2 localCount:1 initScopeDepth:10 maxScopeDepth:11
    D0                       getlocal0     	
    30                       pushscope     	
    5D 04                findpropstrict	:trace
    2C 09                pushstring    	"Hello World"
    4F 04 01           callpropvoid  	:trace (1)
    47                       returnvoid    	
    0 Extras
    0 Traits Entries

    02 03 01 0A 0B 0F    function helloworld_fla:MainTimeline::helloworld_fla:MainTimeline():
    maxStack:3 localCount:1 initScopeDepth:10 maxScopeDepth:11
    D0                       getlocal0     	
    30                       pushscope     	
    D0                       getlocal0     	
    49 00                constructsuper	(0)
    5D 05                findpropstrict	:addFrameScript
    24 00                pushbyte      	0
    60 03                getlex        	helloworld_fla:frame1
    4F 05 02           callpropvoid  	:addFrameScript (2)
    47                       returnvoid    	
    0 Extras
    0 Traits Entries
…………………

Good luck! ^^

參考資源

Disassembling a SWF with swfdump

2008-02-25 23:18:22 | Comments (2)

Flex 3 is Now Open Source !!

Adobe Open Source.包含了Adobe Flex SDKBlazeDSTamarin等開放原始碼的計畫。

而我們可以取得最新的Flex SDK原始碼~

先安裝一下Subversion client:

Windows:http://subversion.tigris.org/files/documents/15/39559/svn-1.4.5-setup.exe

接著就直接給它抓下來:

mkdir flexsrc
svn checkout http://opensource.adobe.com/svn/opensource/flex/sdk flexsrc

下載檔案很多~ 將近800MB~ 所以有點耐心放著讓它慢慢載...

相關資源

Grab the source code to the Flex SDK

Flex SDK Downloads

2008-02-25 21:55:02 | Add Comment

Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment