扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
最近在做一个定位的应用,首先想到的是Google Map,但是查了一下,Google Map是花钱的,所以改用百度 Map了。完成了以后考虑到以后还会用到,于是乎,把它做成一个gem,方便以后使用。闲话少许,看正文:
创新互联公司于2013年创立,先为云梦等服务建站,云梦等地企业,进行企业商务咨询服务。为云梦企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。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。
附件:http://down.51cto.com/data/2362846另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流