从android接收GPS数据到cakephp - 支持cakePHP中的gps位置

时间:2013-02-17 14:51:44

标签: android cakephp geolocation gps

我想将我的位置GPS数据从我的Android手机发送到cakePHP网站。我浏览了我的sql并找到了可用于存储位置信息的POINT类型。但我不知道如何使用cakePHP样式代码插入这些信息。我希望以后能够在我附近找到位置。所以我的问题是:

1 - cakePHP是否支持存储GPS数据和就绪功能,以获得经度和纬度对象的附近位置。

2 - 如果没有,如何将收到的经度和纬度插入cakePHP中的模型中,以及最佳数据类型是什么,因为我将在此之后查询附近的位置。

提前致谢。

2 个答案:

答案 0 :(得分:0)

要将坐标存储为(纬度,经度)对,您可以将其存储为

float latitude,
float longitude

double latitdue,
double longitude

(浮点数没有优势,在磁盘上,但代码更兼容)

或者您甚至可以将其存储为整数

   int latitude = (int) round(latDegrees * 1E7);
   int longitude = (int) round(lonDegrees * 1E7);

所以你也可以将它存储到任何具有(x,y)
的Point结构 使用x表示经度,y表示纬度。

答案 1 :(得分:0)

我找到了一个解决方案如下:

在给定构造数组的cakePHP中将数据插入模型中,我们使用:

$db = $this->Service->getDataSource();  
$serv = array(
                'name'=>$data['name'],
                'loc_point' => $db->expression('POINT('.$dataJson['long'].','.$dataJson['lat'].')')
            );
$this->Service->save($serv));

这行是cakePHP中的问题: 的 'loc_point' => $db->expression('POINT('.$data['lng'].','.$data['lat'].')')

解决插入问题后,我发现谷歌获得了附近位置的教程。它使用lng和lat作为十进制值,我改变了我的代码以遵循它。链接here