نمایش نتایج 1 تا 4 از 4

نام تاپیک: مکانهای نزدیک توسط location و بات تلگرام

  1. #1

    مکانهای نزدیک توسط location و بات تلگرام

    سلام و خسته نباشید خدمت تمام دوستان گل
    2تا سوال دارم
    1- شرکت ما با یه سری مراکز خرید توی اهواز قرارداد داره ، حالا میخوام کاربر هر کجای شهر بود نزدیک ترین مرکز رو بهش معرفی کنه ، اینم بگم که مختصات همه مراکز رو دارم میشه بگید چطوری میشه این کار رو کرد (ربات آمادست فقط نمیدونم چطوری مکانهای نزدیک رو توی دیتابیس بررسی کنم
    2- چطوری میشه تمام اعضای کانال تلراممون رو در بیارم ، (یک شخص رو بلدم ، لیست کلی رو میخوام )
    با تشکر

  2. #2

    نقل قول: مکانهای نزدیک توسط location و بات تلگرام

    سلام برای بدست آوردن مکانهای نزدیک در حد ترافیک کم اگه سایتت تون داره از این کد استفاده کنید ولی برای ترافیک زیاد توصیه نمیکنم چون توان پردازشی بالا میخواد برای اون سیستمها دیگه وجود داره که استفاده کنید ولی اگه خودتون میخواد کد php بزنید این جواب میده تست شده .








    public function getByNearFilterAcvJoin($table1,$table2,$connect,$l  imit,$offset,$order_to,$order,$needs,$where=null,$  condition,$lat,$long,$km_per_degree ,$distance,Silex\Application $app)  
    {
    $sql = "SELECT $needs "; $sql .=",".$km_per_degree." * ACOS( COS( RADIANS( ".$lat." ) ) * COS( RADIANS( ".$table1."._lat ) ) * COS( RADIANS( ".$table1."._long ) - RADIANS( ".$long." ) ) + SIN( RADIANS( ".$lat." ) ) * SIN( RADIANS( ".$table1."._lat ) ) ) AS distance ";

    $sql .= "FROM $table1 INNER JOIN $table2 ON $table1.$connect = $table2.$connect ";

    $sql .= "WHERE ";
    $sql .= "active=1";
    if(isset($where))
    { $sql .= " AND ( ";
    $c = count($where);
    $i = 0;
    foreach ($where as $key => $value)
    {
    if(is_numeric($value))
    $sql.=$key." = :".$key;
    else
    $sql.=$key." LIKE CONCAT('%',:".$key.",'%')";
    $i++;
    if($c!=$i) $sql.=" ".$condition." ";
    }
    $sql.=" )";
    }
    $sql .= " HAVING (distance < ".$distance.")";
    $sql .=" ORDER BY $order $order_to ";
    if($limit>0)
    $sql .= "LIMIT $limit OFFSET $offset";
    if(isset($where))
    $row = $app['db']->fetchAll($sql , $where);
    else
    $row = $app['db']->fetchAll($sql);
    return $row;
    }









    درخواست نمونه









    $this->entities = $this->store->near($request->get('limit',10),$request->get('offset',0),$request->get('order_to','DESC'),$request->get('order','distance'),'store_id,store_name,gnam e,state,city,logo,header_image,we_score,users_scor e,visit,_lat,_long',$where,$request->get('condition','OR'),$request->get('_lat'),$request->get('_long'),$request->get('km_per_degree',3959) ,$request->get('distance',0.310685596), $app);
    $items = $this->db->getByNearFilterAcvJoin($this->table_name,'groups','group_id',$limit,$offset,$or der_to,$order,$needs,$where,$condition,$lat,$long, $km_per_degree ,$distance ,$app);









    ببخشید فقط یه خورده شلوغه چون برای یه پروژه قدیمی silex بود اصلش همون query که زدم

  3. #3

    نقل قول: مکانهای نزدیک توسط location و بات تلگرام

    نقل قول نوشته شده توسط afshines مشاهده تاپیک
    سلام برای بدست آوردن مکانهای نزدیک در حد ترافیک کم اگه سایتت تون داره از این کد استفاده کنید ولی برای ترافیک زیاد توصیه نمیکنم چون توان پردازشی بالا میخواد برای اون سیستمها دیگه وجود داره که استفاده کنید ولی اگه خودتون میخواد کد php بزنید این جواب میده تست شده .








    public function getByNearFilterAcvJoin($table1,$table2,$connect,$l  imit,$offset,$order_to,$order,$needs,$where=null,$  condition,$lat,$long,$km_per_degree ,$distance,Silex\Application $app)  
    {
    $sql = "SELECT $needs "; $sql .=",".$km_per_degree." * ACOS( COS( RADIANS( ".$lat." ) ) * COS( RADIANS( ".$table1."._lat ) ) * COS( RADIANS( ".$table1."._long ) - RADIANS( ".$long." ) ) + SIN( RADIANS( ".$lat." ) ) * SIN( RADIANS( ".$table1."._lat ) ) ) AS distance ";

    $sql .= "FROM $table1 INNER JOIN $table2 ON $table1.$connect = $table2.$connect ";

    $sql .= "WHERE ";
    $sql .= "active=1";
    if(isset($where))
    { $sql .= " AND ( ";
    $c = count($where);
    $i = 0;
    foreach ($where as $key => $value)
    {
    if(is_numeric($value))
    $sql.=$key." = :".$key;
    else
    $sql.=$key." LIKE CONCAT('%',:".$key.",'%')";
    $i++;
    if($c!=$i) $sql.=" ".$condition." ";
    }
    $sql.=" )";
    }
    $sql .= " HAVING (distance < ".$distance.")";
    $sql .=" ORDER BY $order $order_to ";
    if($limit>0)
    $sql .= "LIMIT $limit OFFSET $offset";
    if(isset($where))
    $row = $app['db']->fetchAll($sql , $where);
    else
    $row = $app['db']->fetchAll($sql);
    return $row;
    }









    درخواست نمونه









    $this->entities = $this->store->near($request->get('limit',10),$request->get('offset',0),$request->get('order_to','DESC'),$request->get('order','distance'),'store_id,store_name,gnam e,state,city,logo,header_image,we_score,users_scor e,visit,_lat,_long',$where,$request->get('condition','OR'),$request->get('_lat'),$request->get('_long'),$request->get('km_per_degree',3959) ,$request->get('distance',0.310685596), $app);
    $items = $this->db->getByNearFilterAcvJoin($this->table_name,'groups','group_id',$limit,$offset,$or der_to,$order,$needs,$where,$condition,$lat,$long, $km_per_degree ,$distance ,$app);









    ببخشید فقط یه خورده شلوغه چون برای یه پروژه قدیمی silex بود اصلش همون query که زدم


    سلام
    شرمنده ، مشکل من چیز دیگه ای یه ، مشکل من اون دکمه ای تو تلگرام که با کلیک روش برات مختصات کاربر رو میفرسته (توی ساخت دکمه ارسال موقعیت مشکل دارم)

  4. #4

    نقل قول: مکانهای نزدیک توسط location و بات تلگرام

    نقل قول نوشته شده توسط learn30t مشاهده تاپیک
    سلام
    شرمنده ، مشکل من چیز دیگه ای یه ، مشکل من اون دکمه ای تو تلگرام که با کلیک روش برات مختصات کاربر رو میفرسته (توی ساخت دکمه ارسال موقعیت مشکل دارم)

    من از سوالتون چیز دیگه متوجه شدم راجب این موضوع یادم نیست ولی احتمالا یه مقداری باید اون سمت از کاربر سوال کنه بعد بفرسته یه فیلد هست باید روی true ست کنید به نام request_location مقدار بازگشتی این طور بدست میاد message.location.latitude, message.location.longitude
    این لینک ببینید قسمت location
    https://core.telegram.org/bots/api#message
    البته باید ورژن موبایلی تلگرام باشه

تاپیک های مشابه

  1. نحوه ایجاد inlinequery در بات تلگرام
    نوشته شده توسط j68719 در بخش PHP
    پاسخ: 1
    آخرین پست: پنج شنبه 07 اردیبهشت 1396, 16:51 عصر
  2. سوال: آیا ارسال مقادیر به یک بات تلگرام از طریق url ممکنه ؟ چطوری ؟
    نوشته شده توسط Alireza.imani در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: چهارشنبه 25 اسفند 1395, 15:32 عصر
  3. گفتگو: معرفی بات تلگرام
    نوشته شده توسط ahmad.mo74 در بخش برنامه‌نویسی جاوا
    پاسخ: 2
    آخرین پست: چهارشنبه 21 مرداد 1394, 21:43 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •