2010年9月1日 星期三

MapGuide+Flex = ? Part6 (3D GIS?)

好!一口氣連兩篇!看完上篇所提的那兩篇文章以後,無奈的跑去跟另一個無奈的人聊天,不聊還好!一聊又勾起我在一開始做Viewer時最想做的功能,還記得那時候在機車上跟嘉嘉說:「我想做一個3D引擎,然後把我的Viewer加上3D瀏覽跟屬性查詢的功能,不要只能飛一飛,其實要做簡單的3D引擎應該也不難,只要叭啦叭啦,然後騙使用者以為是3D就好了」,但是這樣的想法很快就淹沒在比較起來很無聊的其他程式當中。

總之,我們開始亂聊,過程不重要,結論是:這讓我直接放棄3D引擎開發這件事情,轉而投向PV3D的懷抱。雖說投向懷抱其實也沒有時間可以玩這個"聽說很少人會的"東西。

昨天又聽到一些很奇妙的事情,早上一不小心就證實了,又讓我決定趕一些工以後就來對我的3DViewer來做一點測試。

所以我想要什麼效果?
動態抓取地圖上的道路等圖徵,依照該圖徵形狀繪製"平面"式的面資料,而原本凸於地表上的東西則利用3D物件來處理,最重要的是,我想要可以屬性查詢

思緒:
1. 要有一個給定範圍以後,可以拋回圖徵Geometry的服務。
2. 要可以轉換真實坐標到螢幕坐標再到3D的空間坐標。
3. 利用PV3D來呈現3D畫面。
4. 要可以監聽到點選事件,所以所繪出的每一個3D"東西"都要是一個"物件",才可以對他們做更多的操作。

直接來看效果
1. 首先做出可以拋回圖徵Geometry的服務,並且將他以3D物件的方式畫在原本的人行道位置上。

2. 將所繪製的3D物件轉個角度,可以有俯瞰的效果。

3. 增加一個平面,跟三個方塊,並且對方塊做一些貼圖,更可以看出3D的效果。

4. 將很花的底圖拿掉,然後改變視野,就更有感覺了!! XDDD

5. 最後,對每個人行道圖徵物件加上OBJECTID屬性,並且監聽是否被點擊,先利用Alert來看看是否成功?

6. 來檢驗看看是不是真的有選對?


可以得到OBJECTID有什麼值得高興的勒?這代表,我們可以在3DViewer裡面去對各項物件操作,而且可以連接到後端資料庫,所以這個3DViewer並不是只是一般展示或是飛行模擬,而可以增加更多我們在一般地理資訊系統中所應該擁有的功能。

4 則留言:

kolen 提到...

這功能,真的是太讚了,不愧是ola哥。

ola的家 提到...

可以來一點有用的意見嗎? 哈~~~

老克的家 提到...
作者已經移除這則留言。
ola的家 提到...

有人留言!然後他自己刪掉了。 T.T

張貼留言