您好,登錄后才能下訂單哦!
最近在做一個定位的應用,首先想到的是Google Map,但是查了一下,Google Map是花錢的,所以改用百度 Map了。完成了以后考慮到以后還會用到,于是乎,把它做成一個gem,方便以后使用。閑話少許,看正文:
A:創(chuàng)建一個文件夾,我叫他map (一下截圖是從mint上用自帶的截圖工具截的,所以不是很清晰,大家可以保存后放大看,也可以下載附件查看)
B:在里面創(chuàng)建一個lib文件夾,在lib下創(chuàng)建ruby文件,我叫他map_from_baidu.rb,這個ruby文件將放你的代碼,后面會給大家展示
C:回到map文件夾下,創(chuàng)建一個map_from_baidu.gemspec的文件,這個文件放的是這個gem的相關信息。還是那樣,一會給大家演示。
D:剛才說道ruby文件里面的代碼,下面將給大家展示:
在Linux下用的自帶的截圖,所以截了兩次:
稍微解釋下代碼,因為服務器要連接百度Map的服務器,所以先是引用‘net/http’ ,然后MapBaidu這個類里面的info方法中,創(chuàng)建這個鏈接,并填充請求參數(shù)。需要說的是@ak,這是一個相當于密鑰的,確切的說是一個私鑰,因為百度要知道是誰在用地圖。這個是在構(gòu)造函數(shù)中指定的,否則是不能得到百度Map的數(shù)據(jù)的。
E:編寫完ruby文件,接著編寫gemspec文件:
這個里面主要是你的一些信息。
F: 編譯你的ruby文件
它會返回successfully 。這個時候你會發(fā)現(xiàn)你的map 文件夾下多了一個文件,mapformbaidu-0.0.1.gem
G:下面要做的是安裝它,和安裝其他的gem一樣,敲個命令即可搞定
安裝完了就可以在本地是用了。
如果你想知道是否安裝了,你可以敲一下 gem query –local 就可以看到了。
H:下一步是測試,在原來的服務器上新建了一個action,例子是以我們學校,河北科技大學新校區(qū)的地址做的測試:
這里只是打印出他的一些信息就好了,如果想得到經(jīng)緯度,可以使用它內(nèi)置的方法,也可以直接用json來操組。
然后啟動服務器,訪問這個action,會在控制臺打出信息:
好了,完成了。
I:考慮到別人會用,所以可以把它放到gems上去,因為昨天做過了push,但是沒有截圖寫blog。這次是和上次一樣的,雖然push上去了,但是一直沒有找到,大家如果用的話,還是用我上一次做的吧,叫mapbaidu 。好開始push :
可以看到push成功了,不清楚為什么上次push的能夠找到,這次沒找到。所以還是用昨天做的那個吧。
這里沒有做文檔,等有空會補上的。
通過這次自己制作gem ,發(fā)現(xiàn)原來ruby確實是相當漂亮,不單單是語法漂亮,強大的社區(qū)也是ruby 日趨火熱。有興趣的程序員們,可以嘗試下ruby。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。