ホームページ  >  記事  >  バックエンド開発  >  [WeChat エンタープライズ アカウントの出席] 従業員が常駐オフィスにサインインするかサインアウトするかを判断するためにどのような方法が使用されますか?

[WeChat エンタープライズ アカウントの出席] 従業員が常駐オフィスにサインインするかサインアウトするかを判断するためにどのような方法が使用されますか?

WBOY
WBOYオリジナル
2016-06-13 12:15:581387ブラウズ

【WeChatエンタープライズアカウント出席】常駐オフィスの従業員のサインインとサインアウトを判断する方法
初心者なので、ここで質問させていただきます。
最近、WeChat エンタープライズ アカウントの出席チェックインおよびチェックアウト機能に取り組んでいます。現在、サーバーの背景は WeChat ユーザーによって送信された地理的位置 (緯度と経度) を受信できるようになりました。私の要件は、ユーザーのみが許可されることです。常設のオフィスエリアで働く場合(オフィスが数百平方メートルと大きい場合、このエリア内でチェックインおよびチェックアウトできますが、エリア外ではチェックインできません)。

ユーザーから返された経度と緯度を取得した後、チェックインとチェックアウトが許可されているかどうかをどのように判断するのでしょうか? ?

従業員のオフィスの位置情報をデータベースに保存し、返された緯度と経度と比較すると、オフィスの位置は非常に大きくなります。位置情報を保存するにはどうすればよいですか?どのように判断するか?
------解決策のアイデア----------------------
まず!幸いなことに、社内では、WiFi であっても GPS 測位であっても、一般的な誤差は 100 メートル以内であり、50 メートルに到達するのが最適です。
1:
データベースには、企業従業員のオフィス所在地の中心位置の緯度と経度が半年間保存されます。変化点を円の中心として、変化点と最大許容オフィス距離との距離を半径として記憶します。ユーザーがサインインまたはサインアウトするたびに、2 つの点 A と B があるとします。点 A の経度と緯度はそれぞれ λA と ΦA、点 B の経度と緯度はそれぞれ λB とΦB で、d は距離です。
次のメソッドを使用します:
d=111.12cos{1/[sinΦAsinΦB十 cosΦAcosΦBcos(λB-λA)]}
計算された距離と、データベース内の対応するユーザーによって許可されている距離 (半径) を比較します。 。半径内であればチェックイン、チェックアウトが可能です。

2: 1 と同様。問題は次のように変換されます。点の座標が与えられた場合、円の中心と半径 r を持つ円上のすべての点の座標を見つけます。
2.1:
スタッフの通常のオフィスの場所の中心を選択してデータベースに保存し、変化点の最大許容範囲内のすべての経度と緯度を計算してデータベースに保存します (非推奨)科学的ではありません。データの量が多すぎて耐えられません。)
2.2:
。得られた長方形の 4 つの点はデータベースに保存されます。ユーザーがサインインおよびサインアウトするときにデータベース内の値を比較します。
この記事が役立つことを願っています http://digdeeply.org/archives/06152067.html

方法 2.2 を提案します。

エラーがあるはずです。



ポイントを教えてください

-----解決策のアイデア---------- - ----------
範囲が狭い場合は、中心点を設定して半径を決定するだけです。
ただし、場合によっては正確ではなく、解決するのが困難です。

お聞きしたいのですが、経度と緯度に加えてネットワークの状態も取得することは可能でしょうか?
または、送信時のIPが会社の外部/イントラネットIPであればサインイン等は可能でしょうか。
------解決策のアイデア---- ------------------

引用:
まずは!幸いなことに、社内では、WiFi であっても GPS 測位であっても、一般的な誤差は 100 メートル以内であり、50 メートルに到達するのが最適です。
1:
データベースには、企業従業員のオフィス所在地の中心位置の緯度と経度が半年間保存されます。変化点を円の中心として、変化点と最大許容オフィス距離との距離を半径として記憶します。ユーザーがサインインまたはサインアウトするたびに、2 つの点 A と B があるとします。点 A の経度と緯度はそれぞれ λA と ΦA、点 B の経度と緯度はそれぞれ λB とΦB で、d は距離です。
次のメソッドを使用します:
d=111.12cos{1/[sinΦAsinΦB十 cosΦAcosΦBcos(λB-λA)]}
計算された距離と、データベース内の対応するユーザーによって許可されている距離 (半径) を比較します。 。半径内であればチェックイン、チェックアウトが可能です。

2: 1 と同様。問題は次のように変換されます。点の座標が与えられた場合、円の中心と半径 r を持つ円上のすべての点の座標を見つけます。
2.1:
スタッフの通常のオフィスの場所の中心を選択してデータベースに保存し、変化点の最大許容範囲内のすべての経度と緯度を計算してデータベースに保存します (非推奨)科学的ではありません。データの量が多すぎて耐えられません。)
2.2:
。得られた長方形の 4 つの点はデータベースに保存されます。ユーザーがサインインおよびサインアウトするときにデータベース内の値を比較します。
この記事が役立つことを願っています http://digdeeply.org/archives/06152067.html

方法 2.2 を提案します。

エラーがあるはずです。



ポイントをあげましょう
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。