関連付けられた経度、緯度、半径 (m 単位)、および notificationID 値が格納されているユーザーのデータベースがあります。
ユーザーがアプリにログインすると、経度と緯度を確認し、次の基準に従う通知 ID のリストを取得する必要があります。
ユーザー A は、半径 1000m 以内の人からの通知を受け取りたいと考えています。ユーザー B は、半径 20000m 以内の人からの通知を受け取りたいと考えています。ユーザー C は、半径 5000m 以内の人からの通知を受け取りたいと考えています。
そのため、ユーザー C がプッシュ通知を送信すると、ユーザー A が実際にはユーザー B よりもユーザー C に近い場合でも、ユーザー A ではなくユーザー B が受信する可能性があります。
これが不明確な場合は申し訳ありませんが、説明するのは難しいと思います。
特定の範囲内の座標を返すクエリを以前に実行しました.50m(以下)などですが、私が苦労しているのは、各人の個々の半径の計算と、それが他のユーザーからの通知。
set @orig_lat= mysql_real_escape_string($_POST['Latitude']);
set @orig_lon=mysql_real_escape_string($_POST['Longitude']);
set @dist= mysql_real_escape_string($_POST['Distance']);
$Search_Query= "SELECT *,
3956 * 2 * ASIN(SQRT( POWER(SIN((@orig_lat -
abs(
dest.lat)) * pi()/180 / 2),2) + COS(@orig_lat * pi()/180 ) * COS(
abs
(dest.lat) * pi()/180) * POWER(SIN((@orig_lon – dest.lon) * pi()/180 / 2), 2) ))
as distance FROM hotels dest having distance < @distORDER BY distance limit 10";