??????因?yàn)楣ぷ骱团d趣的關(guān)系參與了一個(gè)開源WEBGIS的JS庫-MapEasy的開發(fā),對于我對WEBGIS的理解和JavaScript進(jìn)階應(yīng)用的掌握起到了很大的幫助。所以在這里也強(qiáng)烈推薦給大家。并會(huì)陸續(xù)分享我做的部分代碼,與大家共同進(jìn)步。
??????MapEasy以Google Map的方式實(shí)現(xiàn)了基本的GIS功能和簡單地物標(biāo)注等。注意她是一個(gè)純粹的客戶端JS庫,不需要任何插件,并且與后臺(tái)數(shù)據(jù)的獲取方式完全分離,你可以在服務(wù)器放置簡單的圖片,也可以在后臺(tái)架設(shè)你喜歡的地圖服務(wù)器(MapX,GeoServer等),從而使她天生輕量級,更加易于各種環(huán)境下的部署和擴(kuò)展。雖然是完全運(yùn)用弱類型語言JavaScript編寫,但良好的OO設(shè)計(jì)和模式的運(yùn)用絲毫沒有影響她的完美表現(xiàn)(JavaScript中的OO和模式現(xiàn)在越來越受到重視也是一個(gè)趨勢)。下面先給出她的地址和官方介紹,然后再結(jié)合我的理解和開發(fā)過程中的體會(huì)給大家做個(gè)介紹。
??????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非常類似呢?她確實(shí)就是一個(gè)瓦片方式的WEBGIS客戶端,這種方式的優(yōu)缺點(diǎn)自然不用我多說,網(wǎng)上可以找到很多。總的來講我認(rèn)為這種方式在結(jié)合WEB2.0做一些個(gè)性服務(wù)很有優(yōu)勢的,并且互聯(lián)網(wǎng)上的WEBGIS的發(fā)展趨勢也在于此,各家廠商都在探求與WEB2.0更好融合的方法,諸如地域性BLOG、地域性視頻、地域性RSS等GIS和WEB2.0優(yōu)勢互補(bǔ)的服務(wù)呼之欲出。從這種方式漸漸被各大廠商采納并成為主流就可以證明她的優(yōu)勢是明顯的。
??????不過客觀上來講MapEasy和幾個(gè)商業(yè)地圖服務(wù)商提供的服務(wù)還是有相當(dāng)差距的,她暫時(shí)還停留在DEMO的階段(我是比較悲觀的一個(gè),不是整個(gè)TEAM的人都這么認(rèn)為)。在實(shí)際應(yīng)用中還存在很嚴(yán)重的缺陷,比如客戶端對象的索引,地圖操作的容錯(cuò)性等等。限于現(xiàn)在TEAM管理上有些不理想,開發(fā)人員和思路都不是很固定,所以進(jìn)展有些緩慢。但是她確實(shí)是一個(gè)很能引起人興趣,并且對于理解JavaScript OO編程和模式運(yùn)用很好的項(xiàng)目,如果你對JavaScript感興趣或者想做一些JavaScript的進(jìn)階開發(fā)(比如JS游戲開發(fā)等),她絕對是一個(gè)不容錯(cuò)過的好機(jī)會(huì)。她結(jié)構(gòu)相當(dāng)清晰,并且是完全中文注釋(是不是對很多人都很有吸引力呢?我就是其中一個(gè),E文太差),非常輕量級,易于自己擴(kuò)展。這樣你既有了學(xué)習(xí)的機(jī)會(huì)也有了動(dòng)手的機(jī)會(huì),還愁不提高嗎?當(dāng)然如果你是一個(gè)JS牛人,那也非常歡迎您的參與和指導(dǎo)。(還正缺幾個(gè)牛人領(lǐng)導(dǎo)呢,呵呵)畢竟她是一個(gè)很小的開源項(xiàng)目,還需要大家共同的努力和貢獻(xiàn)才能更完善。
??????如果您感興趣可以在這里下載她:
http://mapeasy.sourceforge.net/demo/mapapi0.4alpha/mapapi0.4alpha.zip??????下載后更本不需要安裝,不需要任何插件,也不需要服務(wù)器,打開一個(gè)HTML頁面就會(huì)擁有漂亮的地圖效果和功能了。
??????MapEasy現(xiàn)在實(shí)現(xiàn)的功能有:放大,縮小,地圖切換,漫游等GIS基本功能,也實(shí)現(xiàn)了一些地圖覆蓋物對象,如標(biāo)注等。我在原有基礎(chǔ)上結(jié)合我自己的實(shí)際需求開發(fā)了車輛(就是可移動(dòng)覆蓋物),地圖覆蓋物索引等對象和優(yōu)化。還有TEAM中其他人也實(shí)現(xiàn)了很多其他功能,但因?yàn)楦鞣N原因暫時(shí)還沒有得到良好的整合。在MapEasy上做二次開發(fā)真的太容易了,擴(kuò)展她的的一些類就可以了,比如你要加一種地物,只需要繼承MapEasy提供的地物抽象類然后擴(kuò)展自己的方法即可。強(qiáng)烈建議大家用OO方式開發(fā)和擴(kuò)展。
??????MapEasy是一個(gè)很有意思,非常適合學(xué)習(xí),并且很有前途的一個(gè)開源項(xiàng)目,但是現(xiàn)在并沒有得到應(yīng)有的關(guān)注,非常之可惜。我會(huì)陸續(xù)寫一系列相關(guān)的文章,并共享出我的代碼和思路。希望大家也可以參與進(jìn)來,絕對對學(xué)習(xí)和掌握J(rèn)avaScript會(huì)有你想不到的好處。強(qiáng)烈推薦!!!
??????另:完全國人自己開發(fā)的,是不是更有支持的理由呢? 不要讓外國佬總說我們只是開源的使用者。。。
??????我會(huì)堅(jiān)持我的開源之路!
??????今天你開源了嗎?
posted on 2007-01-31 23:50
cresposhi 閱讀(11453)
評論(73) 編輯 收藏