一个使用Ruby on Rails开发LBS网站的简单实例

这几天一直在学习使用Ruby on Rails(RoR),想建立一个功能全面一点的LBS(Location Based Service)网站。但是对于我这个RoR的初学者(仅有几天时间)来说,毕竟太复杂了。因此本文试图简化原来的设计思路,抛弃一切权限管理,仅仅对数据表中的坐标位置进行插入和更新。也就是,使用表单提交用户坐标位置信息,地图页面定时刷新获取这些信息并显示在地图上。通过这个例子,来熟悉RoR的编程,熟悉ArcGIS Online Map。掌握Ajax在RoR中的一般用法(RJS)。

关键词:Ruby, RoR, MySQL, LBS, Ajax, RJS, ArcGIS Online Map, Dojo

0 安装RubyOnRails

Windows环境下一键安装RubyOnRails开发环境

1)直接点击链接下载:

2)或者进入下载页面,选择要安装的版本:?group_id=904

3)在Windows下安装InstantRails-2.0-win, 解压到无空格的英文路径下即可,如C:\。然后双击C:\InstantRails-2.0-win\InstantRails.exe文件即可启动InstantRails。

4)因为我总是喜欢使用MySQL,因此要手动把文件C:\InstantRails-2.0-win\mysql\bin\libmySQL.dll复制到目录C:\InstantRails-2.0-win\ruby\bin\。这个应该算InstantRails安装包的一个小缺陷吧。

2)开发用到的工具软件

1 创建Rails项目

从InstantRails进入Ruby命令行,输入清单1的命令:

一个使用Ruby on Rails开发LBS网站的简单实例

图1:打开Ruby命令行

清单1:创建项目gis

 

C:\InstantRails-2.0-win\rails_apps>rails -d mysql gis   cd gis   ruby script/server  

第1行创建项目,第2行切换到项目中,第3行启动gis服务。点击浏览:3000/就可以看到网站正确地建立了,如图2:

一个使用Ruby on Rails开发LBS网站的简单实例

图2:RoR默认网站

2 创建数据库

从InstantRails进入Ruby命令行:

清单2:创建项目数据库

cd gis   gis>mysql -u root –p   mysql> create database gis_dev;   mysql> create database gis_test;   mysql> create database gis;   mysql> exit;   gis>  

提示Enter Password:时,直接回车。编辑\rails_apps\gis\config\database.yml文件,修改数据库名:gis_development=>gis_dev,gis_production=>gis。 3 导入数据表(locations)

从InstantRails->Configure->Database (via PhpMyAdmin),使用以下脚本创建gis_dev中的数据表。

清单3:创建gis_dev数据库表locations

 

drop table if exists locations;   create table locations (     id int not null auto_increment,     user_id int not null,     recv_time timestamp default current_timestamp not null,     x_long decimal(12,7) null,     y_lat decimal(12,7) null,     z_elev decimal(12,3) null,     velocity decimal(10,0) null,     accel decimal(10,0) null,     direction decimal(10,4) null,     pitch decimal(10,4) null,     roll decimal(10,4) null,     battery decimal(3,0) null,     confidence decimal(3,0) null,     message varchar(200) null,     primary key (id)   );  

说明:
    user_id:用户id
    recv_time:收到信息的时间,这是个数据库自动填充时间的字段
    x_long:经度deg
    y_lat:纬度deg
    z_elev:高度m
    velocity:速度m/s
    accel:加速度
    direction:方向角度
    pitch:俯仰角度
    roll:倾斜角度
    battery:电池电量0-100
    confidence:信号强度0-100,似乎用signal更好一些
    message:短消息,提供呼叫信息功能
选择数据库gis_dev,在选择SQL标签页,将上面的SQL脚本粘帖到框中,最后按右下角的【执行】按钮。如图3所示:

一个使用Ruby on Rails开发LBS网站的简单实例


图3:使用PhpMyAdmin创建数据表

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://127.0.0.1/wyyssx.html