解决方案 »

  1.   

    就是一个送外卖的系统,用微信接口,现在是已经接收到地理位置的信息,要在数据库里查询
    private function wxLocation(){           //测试
    $arrayli = $this->weObj->getRevGeo();
    //计算最大最小经纬度
    $range = 180 / pi() * 1 / 6372.797;     //里面的 1 就代表搜索范围为1km之内
    $lngR = $range / cos($arrayli[x] * pi() / 180);
    $maxLat = $arrayli[y] + $range;//最大纬度
    $minLat = $arrayli[y] - $range;//最小纬度
    $maxLng = $arrayli[x] + $lngR;//最大经度
    $minLng = $arrayli[x] - $lngR;//最小经度
    $this->selectStores($maxLat,$minLat,$maxLng,$minLng);
    }     
    先说查询的问题,
    private function selectStores($maxLat,$minLat,$maxLng,$minLng){     //测试
    $store_model = M("store"); // 实例化User对象
    $condition['latitude'] = array('between','$maxLat','$minLat');
    $condition['longitude'] = array('between','$maxLng','$minLng');
    $condition['_logic'] = 'AND';
    $stores=$store_model->where($condition)->select();
    }
    这样写查询对不对。