??????因為工作和興趣的關系參與了一個開源WEBGIS的JS庫-MapEasy的開發,對于我對WEBGIS的理解和JavaScript進階應用的掌握起到了很大的幫助。所以在這里也強烈推薦給大家。并會陸續分享我做的部分代碼,與大家共同進步。
??????MapEasy以Google Map的方式實現了基本的GIS功能和簡單地物標注等。注意她是一個純粹的客戶端JS庫,不需要任何插件,并且與后臺數據的獲取方式完全分離,你可以在服務器放置簡單的圖片,也可以在后臺架設你喜歡的地圖服務器(MapX,GeoServer等),從而使她天生輕量級,更加易于各種環境下的部署和擴展。雖然是完全運用弱類型語言JavaScript編寫,但良好的OO設計和模式的運用絲毫沒有影響她的完美表現(JavaScript中的OO和模式現在越來越受到重視也是一個趨勢)。下面先給出她的地址和官方介紹,然后再結合我的理解和開發過程中的體會給大家做個介紹。
??????SF地址 :
http://mapeasy.sourceforge.net/??????Google Group :
http://groups.google.com/group/mapeasy?hl=zh-CN??????QQ群 : 4179693
??????
About:
??????MapEasy is a web mapping client api which has an analogy with Google Map Api. It helps to build a map-based application easily.
??????Based on Javascript and AJAX technology, MapEasy will work on most modern browsers (Firefox 1.0+, Internet Explorer 6.0+) using simple Javascript calls. Independent from the concrete GIS technology and specification, MapEasy allows you to request maps as rendered images (normally JPEG,PNG or GIF), and fufills the normal GIS functions such as locating, zooming, and marking...?
??????
Key Features: - open source
- pure javascript application
- easy to use
- API is similar to google map api
- decouple the map view and the data service. independant from the specifical map data service
- self define Plane Coordinate system(not available yet)
- customisable and easy to extend
- support IE6, Firefox/Mozilla, Opera(not available on Opera yet)
- support Latitude/Longitude Coordinate System
??????Interface Sample:
??????

??????看上面的Sample是不是和Google Map非常類似呢?她確實就是一個瓦片方式的WEBGIS客戶端,這種方式的優缺點自然不用我多說,網上可以找到很多??偟膩碇v我認為這種方式在結合WEB2.0做一些個性服務很有優勢的,并且互聯網上的WEBGIS的發展趨勢也在于此,各家廠商都在探求與WEB2.0更好融合的方法,諸如地域性BLOG、地域性視頻、地域性RSS等GIS和WEB2.0優勢互補的服務呼之欲出。從這種方式漸漸被各大廠商采納并成為主流就可以證明她的優勢是明顯的。
??????不過客觀上來講MapEasy和幾個商業地圖服務商提供的服務還是有相當差距的,她暫時還停留在DEMO的階段(我是比較悲觀的一個,不是整個TEAM的人都這么認為)。在實際應用中還存在很嚴重的缺陷,比如客戶端對象的索引,地圖操作的容錯性等等。限于現在TEAM管理上有些不理想,開發人員和思路都不是很固定,所以進展有些緩慢。但是她確實是一個很能引起人興趣,并且對于理解JavaScript OO編程和模式運用很好的項目,如果你對JavaScript感興趣或者想做一些JavaScript的進階開發(比如JS游戲開發等),她絕對是一個不容錯過的好機會。她結構相當清晰,并且是完全中文注釋(是不是對很多人都很有吸引力呢?我就是其中一個,E文太差),非常輕量級,易于自己擴展。這樣你既有了學習的機會也有了動手的機會,還愁不提高嗎?當然如果你是一個JS牛人,那也非常歡迎您的參與和指導。(還正缺幾個牛人領導呢,呵呵)畢竟她是一個很小的開源項目,還需要大家共同的努力和貢獻才能更完善。
??????如果您感興趣可以在這里下載她:
http://mapeasy.sourceforge.net/demo/mapapi0.4alpha/mapapi0.4alpha.zip??????下載后更本不需要安裝,不需要任何插件,也不需要服務器,打開一個HTML頁面就會擁有漂亮的地圖效果和功能了。
??????MapEasy現在實現的功能有:放大,縮小,地圖切換,漫游等GIS基本功能,也實現了一些地圖覆蓋物對象,如標注等。我在原有基礎上結合我自己的實際需求開發了車輛(就是可移動覆蓋物),地圖覆蓋物索引等對象和優化。還有TEAM中其他人也實現了很多其他功能,但因為各種原因暫時還沒有得到良好的整合。在MapEasy上做二次開發真的太容易了,擴展她的的一些類就可以了,比如你要加一種地物,只需要繼承MapEasy提供的地物抽象類然后擴展自己的方法即可。強烈建議大家用OO方式開發和擴展。
??????MapEasy是一個很有意思,非常適合學習,并且很有前途的一個開源項目,但是現在并沒有得到應有的關注,非常之可惜。我會陸續寫一系列相關的文章,并共享出我的代碼和思路。希望大家也可以參與進來,絕對對學習和掌握JavaScript會有你想不到的好處。強烈推薦?。。?br />
??????另:完全國人自己開發的,是不是更有支持的理由呢? 不要讓外國佬總說我們只是開源的使用者。。。
??????我會堅持我的開源之路!
??????今天你開源了嗎?
posted on 2007-01-31 23:50
cresposhi 閱讀(11453)
評論(73) 編輯 收藏