最近在做一个定位的应用,首先想到的是Google Map,但是查了一下,Google Map是花钱的,所以改用百度 Map了。完成了以后考虑到以后还会用到,于是乎,把它做成一个gem,方便以后使用。闲话少许,看正文:
A:创建一个文件夹,我叫他map (一下截图是从mint上用自带的截图工具截的,所以不是很清晰,大家可以保存后放大看,也可以下载附件查看)
B:在里面创建一个lib文件夹,在lib下创建ruby文件,我叫他map_from_baidu.rb,这个ruby文件将放你的代码,后面会给大家展示
C:回到map文件夹下,创建一个map_from_baidu.gemspec的文件,这个文件放的是这个gem的相关信息。还是那样,一会给大家演示。
D:刚才说道ruby文件里面的代码,下面将给大家展示:
在Linux下用的自带的截图,所以截了两次:
稍微解释下代码,因为服务器要连接百度Map的服务器,所以先是引用‘net/http’ ,然后MapBaidu这个类里面的info方法中,创建这个链接,并填充请求参数。需要说的是@ak,这是一个相当于密钥的,确切的说是一个私钥,因为百度要知道是谁在用地图。这个是在构造函数中指定的,否则是不能得到百度Map的数据的。
E:编写完ruby文件,接着编写gemspec文件:
这个里面主要是你的一些信息。
F: 编译你的ruby文件
它会返回successfully 。这个时候你会发现你的map 文件夹下多了一个文件,mapformbaidu-0.0.1.gem
G:下面要做的是安装它,和安装其他的gem一样,敲个命令即可搞定
安装完了就可以在本地是用了。
如果你想知道是否安装了,你可以敲一下 gem query –local 就可以看到了。
H:下一步是测试,在原来的服务器上新建了一个action,例子是以我们学校,河北科技大学新校区的地址做的测试:
这里只是打印出他的一些信息就好了,如果想得到经纬度,可以使用它内置的方法,也可以直接用json来操组。
然后启动服务器,访问这个action,会在控制台打出信息:
好了,完成了。
I:考虑到别人会用,所以可以把它放到gems上去,因为昨天做过了push,但是没有截图写blog。这次是和上次一样的,虽然push上去了,但是一直没有找到,大家如果用的话,还是用我上一次做的吧,叫mapbaidu 。好开始push :
可以看到push成功了,不清楚为什么上次push的能够找到,这次没找到。所以还是用昨天做的那个吧。
这里没有做文档,等有空会补上的。
通过这次自己制作gem ,发现原来ruby确实是相当漂亮,不单单是语法漂亮,强大的社区也是ruby 日趋火热。有兴趣的程序员们,可以尝试下ruby。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。