您好,登錄后才能下訂單哦!
最近在做一個定位的應用,首先想到的是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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。