我想将我的位置GPS数据从我的Android手机发送到cakePHP网站。我浏览了我的sql并找到了可用于存储位置信息的POINT
类型。但我不知道如何使用cakePHP样式代码插入这些信息。我希望以后能够在我附近找到位置。所以我的问题是:
1 - cakePHP是否支持存储GPS数据和就绪功能,以获得经度和纬度对象的附近位置。
2 - 如果没有,如何将收到的经度和纬度插入cakePHP中的模型中,以及最佳数据类型是什么,因为我将在此之后查询附近的位置。
提前致谢。
答案 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