MapEasy-一个类似GoogleMap的客户端JS开源库
因为工作和兴趣的关系参与了一个开源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客户端,这种方式的优缺点自然不用我多说,网上可以找到很多。总的来讲我认为这种方式在结合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会有你想不到的好处。强烈推荐!!!
另:完全国人自己开发的,是不是更有支持的理由呢? 不要让外国佬总说我们只是开源的使用者。。。
我会坚持我的开源之路!
今天你开源了吗?