开源移动GIS解决方案--GeoInker发布

我的第一个开源程序GeoInker发布!

项目地址:https://github.com/shiyj/GeoInker

项目主页:http://geoinker.com

简介

GeoInker 是我的毕业设计,目标是搭建一个移动GIS平台,为各个行业应用提供在移动平台上的解决方案.

目前开发的平台只有Android ,不过平台采用到特殊架构方式很容易就可以迁移到Windows Phone,iso等平台,
这后边我详细介绍.
如果感兴趣可以在github上follow,下边介绍下它目前的开发状况、架构、功能等:

GeoInker目前开发状况

GeoInker目前仅仅刚刚搭建好框架,功能不稳定,界面不美观,运行效率低下...

但是,内涵很丰富,具体表现在以下两点:

  • 1.GeoInker 在移动平台上实习了空间数据库功能,即可以将空间数据存储在关系数据库中,并对其索引、查询和分析.
  • 2.GeoInker 的UI层采用的是HTML元素结合CSS和Javascript来实现,这就是为什么我上边说"很容易迁移到其他平台".

针对第一点,它可以实习复杂的GIS操作,如空间拓扑关系,空间分析,空间索引.当然也包括最基本的增删改查.
使用过如PostGIS和Oracke Spatial的应该都很清楚空间数据库是怎么回事.
GeoInker采用的是Spatilite数据库,简单、轻巧而功能丰富.

针对第二点,其带来的好处就是更轻松的平台移植,不过仍不能达到完全的"write once run anywhere",
根据需求的不同,也需要大量的中间件来填补差异。当然也不仅仅是平台移植方便,
采用JS+HTML+CSS的开发方式其技术上的门槛就很低了。

但是这两个特点带来了一个很大到问题:程序的效率极低!!!

对于第一点是受限于移动平台本身的处理能力,这方面可以在查询和处理数据的方法上做改善,
但是改善空间不大。

对于第二点效率问题就更加突出,在移动平台本身的处理能力达不到要求的情况下,
还要用程序内嵌的浏览器去渲染更加复杂的空间数据,
无异于笨熊戴着镣铐去跳舞……

不过我对这些还是比较乐观的,毕竟科技的速度是你无法想像的,
更何况在实施这个项目时所锻炼处出来的东西应该超过这个项目本身。
那么还犹豫什么?一同开发它吧!!!
下面说一下开发它大致需要什么样的知识和背景,你看下这些东西是否是你感兴趣的.

需要具备的知识:

1.需要熟悉的开发环境

  • 操作系统: Ubuntu 系列
  • IDE: Eclipse

2.需要掌握的编程语言

  • javascript (必须) javascript 用来做UI和一些数据绑定获取显示等操作. 目前用到的类库是处理界面的Sencha Touch和处理GIS数据的openlayers, 这两个需要掌握. 此外GeoInker的后台服务我准备使用Node.js+MongoDB, javascript在后台也是可以大有作为的。
  • Java (了解) Android的dalvik虚拟机采用的是Java运行时, 如果你想调用它的内容如声音震动、联系人列表、文件列表等就必须要知道点Java。 不过并不需要你去了解J2EE之类的工程级应用,简单到调用接口即可。
  • C/C++(选用) Android是基于Linux的,所以原生的C/C++代码是可以运行在其中的, 这也是GeoInker实现空间数据库的方法,不过大部分内容都是利用Spatialite现有的东西, 需要自己写的并不多,所以C/C++在这个项目里如果想深入需要用到,但不用也可以满足需求。
  • git git不算是一门语言,它是一个版本控制器,如果你也想参与到GeoInker的话这个是必需的(所幸git也是很简单的), 如果只是想看看源代码作为正面或反面教材,嘿嘿,就用不到这个。 不过提醒下,git是Linux的发起人Linus Torvalds继Linux后的另一开源项目, 其“威望“可想而知。

最后

其实准备GeoInker很长时间了,一直都在忙它的功能实现但总是有这样那样的问题迟迟不能发布。
包括现在它仍然是一个BUG丛生的程序,不过我想总该有一个开始吧,
总该把以前的包袱扔掉接受新鲜的事物。
西西弗斯的悲剧是日夜地重复,我性格上的弱点多少也有这点封闭、自卑的重复。
我希望的是一个新的开始,新的开放的环境……

Powered by Engin & toto

comments powered by Disqus