0

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

1 - cakePHP 是否支持存储 GPS 数据和准备函数来获取给定经度和纬度对象的附近位置。

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

提前致谢。

4

2 回答 2

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 作为十进制值,我更改了代码以遵循它。链接在这里

于 2013-02-18T03:40:20.697 回答
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 表示纬度。

于 2013-02-18T02:06:11.943 回答