google柵格map技術實現原理和用戶體驗方式

 
google柵格map技術實現原理和用戶體驗方式
2007-08-09 10:48
google map的推出,改變了MapGIS用戶體驗,國內也起來了mapabc mapbar紛紛效仿。
這是一種用戶體驗的變革,相信不是google首創,但確實是google使得這項技術發揚光大。

b8V*]*j W*x!I0
以前大概也接觸過一些gis應用技術,arcGIS mapinfo是王道,國產的mapgis supermap也很成熟,二次開發都有。但webgis方面總不盡人意,如以前的DHTML展現的go2map,還有不少javaapplet activex做web嵌入客戶端的技術。
雖然能夠做到矢量無極縮放,各種高級功能都可以通過後臺引擎提供。但效率一直是一個很大的問題。
每一次簡單的交互操作(如移動、放大)都會通過後臺服務器查詢、檢索、顯示、輸出,後臺壓力不小,多幾個併發就響應不過來。再怎麼優化也不適合公衆使用。
開發平臺確實都成熟,都有相關的web開發組件。但效果確實感覺不佳。即使用集羣,也是非常複雜的事情。
2:google的柵格map方式,在用戶體驗和性能優化上確實值得讚歎。
1)需求分析,用戶瀏覽地圖,有多少真正希望瞭解地圖上一條線,一個面呢?那些無級縮放的圖層有必要提供給用戶交互嗎?用戶無非是關注一下大概的形狀、地名點、關鍵道路,而這些數據量比起地圖的全部圖層來說,是小得可憐的。因此google在這一塊,把所有圖層疊加生成了不同比例尺下很大的靜態圖片,就好比輸出成一張掛圖。
這一點,使得後臺系統不必每回動態生成顯示,極大程度降低了服務器負擔,因爲這些數據確實不會大變,即使變化數據的更新也是很大的工程。而上面的標註點,道路的有權有向圖,或者行業業務數據纔是頻繁更新的。
除了矢量地圖,疊加的衛星航拍圖也這麼處理,更大程度降低了服務器負擔,我想,怎麼着也有80%以上吧。
2)用戶交互,一張全世界的地圖可大得嚇人,不可能臨時裁剪顯示輸出。google很聰明的使用了Grid方式,把圖切成無數小塊,每回使用滑動窗口輸出有限的小圖,再拼在一起顯示。再加上(可視/後臺緩衝)圖片格的障眼法使得用戶拖動時感覺不出拼接。
ajax的應用,使得後臺下載填充緩衝格爲下一次移動做好了準備。
具體操作:
先用專業GIS系統,把矢量圖圖層疊加做好,做到顯示效果最佳,再根據不同的縮放輸出不同比例尺的圖片,然後按一定大小切塊,如128*128,每級圖層按一定比例縮放,一般可以是2倍,這樣就會有十幾個不同比例尺的柵格圖了。這些國產的GIS平臺都提供了這種跑圖的工具。人工做好基礎圖,讓程序自己輸出就行了。
都是切好了的小塊。
具體存放都不用放數據庫,如 map/level/row/row_col.gif 以這種方式存放,調用起來只需要承受web服務器的負擔,做負載均衡也相當方便。最大負擔的數據已經被這樣緩衝起來了。
雖然損失了矢量的無級縮放,但對於用戶來說速度提高了,更有價值。
每個圖片都可以根據他的比例尺、格子座標換算出相應的精度緯度,這些比例都是固定的,因此粗略計算點間距離客戶端都可以算出來。
圖片縮放、定位無非就是找到一個不同比例尺的中心格子,然後顯示周圍的格子。運算、特效,在google map上都看得到。研究一下他的ajax的js代碼就知道了。障眼法。
滑動窗口,使得我們在做移動操作時看不到延時。因爲可視區域周圍的格子已經被後臺下載到本地了。
這樣,一個效率很高的網上地圖就實現了,級別上都不需要gis引擎,光apache就夠了。
當然如果僅僅是瀏覽的話,跟家裏買個掛圖差不多。要利用上gis各項技術,只需在地圖的基礎上擴展。我想這些擴展再怎麼耗資源,也是有限的,比起實時運算各個圖層再生成地圖的消耗來說,少之甚少。
典型的應用
點標註查詢,通過地名點ID,又可以從關係數據庫獲得大量的屬性數據。這也是最常見和最有用的功能,定位,看屬性。不少行業都有需求,當然mapbar mapabc之類的都在搞民間的標註工作。
不過電信114服務後臺這些數據實在是太全了,而且和各地電話號碼都可以掛鉤,比民間標註強實在太多,不過電信肯定是偷偷的藏起來,讓你打電話他們幫忙查,再收錢,怎麼都捨不得公開的。金磚啊。
一些行業gis應用的查詢系統,用這種webgis展現也是非常實用和高效的。
通過javascript橡皮條之類的在地圖上選取範圍,轉換成座標後傳到後臺返回出響應的點疊加到地圖上,或者通過web列表出來。再點擊後進一步查看屬性數據。或者生產統計信息。總之查詢功能通過GIS很容易實現,數據是有限的,查詢效率自然高,甚至都可以不通過gis引擎優化,直接拼湊sql語句到 dbms中檢索。
還有通過輸入位置,查周圍多少範圍內的某類標記點,後臺查詢也都會很快,還是數據量小的原因。
80%人用的查詢功能完成了。
簡單的標註功能也很容易實現,只要有響應的接口,獲得用戶標註的位置,轉換成座標系即可。結合mis系統添加屬性數據,一般行業用戶不需要專門的gis工具都可以達到數據錄入的要求,方便快捷。
2:道路拓撲,網絡分析,最優路徑
對道路線網做有向、有權的圖運算操作,相信現有的GIS技術早就就不成問題。
利用專門的gis工具生成運算處理這些東西實在是很成熟了。國內幾家GIS引擎都很完善了,再算得慢用戶也感覺不出來。畢竟那幾條路數也數得清楚。
已經有的應用如汽車導航,車輛換乘,最短路徑。
這是今天和合作伙伴探討gis技術時聽來的,實在都是一些優化技巧,損失一些80%用不到的功能,強化20%最需要的功能。好用戶體驗就是這麼個權衡法則。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章