Linux日志
PHP记事本
JS记事本
数据库
团队资讯

laravel通过mondDB实现经纬度计算(实现搜索附近的人)

分类:数据库 发布时间:2017-05-30 10:39:44 阅读:作者:郑祥景

    一、加载扩展包:

composer require jenssegers/mongodb

    

    二、在app.php注册服务

Jenssegers\Mongodb\MongodbServiceProvider::class,

(可以参开文档:https://github.com/jenssegers/laravel-mongodb)

    

    三、配置数据库连接

    在database.php的connections数组内添加

'mongodb' => [    
        'driver'   => 'mongodb',    
        'host'     => 'localhost',    
        'port'     => 27017,    
        'database' => 'mydb',    
        'username' => '',    
        'password' => '',
],

    

    四、新建address数据表,填充数据库

{
  "_id": ObjectId("518b1f1a83ba88ca60000001"),
  "account": "simplephp1@163.com",
  "gps": [
    104.067221,
    30.620076
  ]
}
 
{
  "_id": ObjectId("518b1dae83ba88d660000000"),
  "account": "simplephp6@163.com",
  "gps": [
    104.07958,
    30.653936
  ]
}

    

    五、修改env文件数据库连接方式:

DB_CONNECTION=mongodb

    

    六、model文件代码

<?php

namespace App;

use Jenssegers\Mongodb\Eloquent\Model;

class Address extends Model
{
    public $timestamps = true;
    protected $fillable = [
        '_id',
       'account',
       'gps',
    ];
    protected $connection = 'mongodb';
    protected $table = 'address';
}

    

    七、控制器代码:

<?php

namespace App\Http\Controllers;

use App\Address;

class IndexController extends Controller
{
    public function index(Address $address)
    {
        $result = $address->where('gps', 'near', [
            '$geometry' => [
                'type' => 'Point',
                'coordinates' => [118.60036234, 24.90165238],
            ],
            '$maxDistance' => 1000, //单位:米
        ])
            ->get();

        dd($result);
    }
}


参考:http://justcode.ikeepstudying.com/2015/07/mysql-lbs%E5%AE%9E%E7%8E%B0%E6%9F%A5%E6%89%BE%E9%99%84%E8%BF%91%E7%9A%84%E4%BA%BA/

  

   编辑:郑祥景

[随享社区版权所有 未经许可不得转载 ]

返回首页


推荐
Linux日志
PHP记事本
JS记事本
数据库
团队资讯
在线客服随享宝宝
有任何问题,都可以戳我反馈哦!
微信公众号 方便 快速
扫描二维码 关注公众号

版权所有:天妖云/随享社区V5.2 beta Copyright 2015-2019 TIAYO.COM Inc. All rights reserved.