膝の監視

動いているオブジェクトをクラッキングするタスクは広く行われています。 最も単純なケースでは、Android搭載の携帯電話を使用し、OsmAndをそこに配置して、ライブ監視を設定する必要があります。 座って、デバイスを動かすマップ(もちろんOpenStreetMap)を見てください。 それは私がやったことでしたが、突然、正しい日にインターネット、コンピューター、時間がないことになりました。



そして、私は出口を探し始めました。 まず、 チャットとの簡単な協議と議論が行われ 、その後、昼食後、決定が下されました。



携帯電話があり、email2smsオペレーターサービスがあります。 したがって、私の場合、タスクは単純に、人間が読める1000文字以下のテキストを取得するだけです。 しかし、最初に私は思考の流れを説明しようとします。



したがって、市場の100500のアプリケーションは、OsmAndとまったく同じように実行できます。トラックを収集し、地図上に位置を表示し、座標を共有します。 問題は、メニュー項目「共有」を押すだけでそれらが分割されることであり、訓練されていないAndroidユーザーの手動アクションへの依存は除外されるべきです。 そして、それを言うために-座標のペア( latlon )は、壁のフレームにぶら下がっているのに適していますが、オブジェクトにすでに到達した場所を伝えません。 他の適切なオプションが見つかりませんでした。おそらく十分な時間がなかったでしょう。 OruxMapsのみに言及します-間違いなく便利で非常に機能的なプログラムです。 非常に機能的で、震えている膝を怖がらせました。 私は彼女の勉強を後でするつもりです...



この時点で、5分ごとに受信するメッセージの形式について明確なアイデアが形成されました。「 XXX km宛先まで 」、これで十分です。 あまり一般的ではないかもしれませんが、設定できる最大値は5分です。 email2smsの数のおよその制限は1日あたり100です。 それは8時間全体で十分です、それは良いことです。



突然、私たちは、データベースやその他の機能なしで、非常に単純なphpスクリプトを配置するという条件で、ホスティングを見つけることができました。 それでは、コーディングを始めましょう。 ブックマークからのサイト( GIS-LAB.info 、なぜ非表示)には、既成のアルゴリズム「球面上の2点間の距離と初期方位角の計算」による大きな円の説明があり、 PHPで歪んで歪んで改造されています。

<?php #   $slat=53.393055555556; $slon=58.755555555556; $flat=55.3; $flon=61.5; #pi -  pi, rad -   () $pi = pi(); $rad = 6372795; #  $lat1 = deg2rad($slat); $long1 = deg2rad($slon); $lat2 = deg2rad($flat); $long2 = deg2rad($flon); #       $cl1 = cos($lat1); $cl2 = cos($lat2); $sl1 = sin($lat1); $sl2 = sin($lat2); $delta = $long2 - $long1; $cdelta = cos($delta); $sdelta = sin($delta); #    $y = sqrt(pow($cl2*$sdelta,2)+pow($cl1*$sl2-$sl1*$cl2*$cdelta,2)); $x = $sl1*$sl2+$cl1*$cl2*$cdelta; $ad = atan2($y,$x); $dist = $ad*$rad; #   $x = ($cl1*$sl2) - ($sl1*$cl2*$cdelta); $y = $sdelta*$cl2; $z = rad2deg(atan(-$y/$x)); if ($x < 0) $z = $z+180; $z2 = ($z+180.) % 360. - 180.; $z2 = - deg2rad($z2); $anglerad2 = $z2 - ((2*$pi)*floor(($z2/(2*$pi))) ); $angledeg = rad2deg($anglerad2); echo 'Distance >> ' . $dist . ' [meters]'; echo '<br/>Initial bearing >> ' . $angledeg . ' [degrees]'; ?>
      
      





距離>> 276805.84112453 [メートル]

初期方位>> 39 [度]



制御の例として、旅行の方向と距離にほぼ対応する空港のポイントが取得されます。



MQFとCEK間の距離

距離は次のように計算されています:277キロメートル(173マイル)



うまくいきました! 関数を作成します。最初の方位角は不要で、単純化のために捨てられます。 OsmAnd 0.7.1でライブトラッキングが最初に表示された方向にデータを送信することを忘れずに、欠落している機能を添付します。







 <?php function distance($llat1,$llong1,$llat2,$llong2) #   { //[......] return $dist; } import_request_variables('G', 'hhsb_'); //       -   .   ! # c - current; f - final; s - start $d1 = distance($hhsb_clat,$hhsb_clon,$hhsb_flat,$hhsb_flon); $d2 = distance($hhsb_clat,$hhsb_clon,$hhsb_slat,$hhsb_slon); #  $emailfrom = $hhsb_rpl; $replyemail = $emailfrom; $emailto = $hhsb_eml; $headers = "MIME-Version: 1.0\r\n"; $headers .= "From: ".$emailfrom."\r\n"; $headers .= "Reply-To: ".$replyemail."\r\n"; $headers .= "X-Priority: 3 (Normal)\r\n"; $headers .= "X-Mailer: yourhoster.com\r\n"; $headers .= "Content-Type: text/plain; charset=Windows-1251\r\n"; $headers .= "Content-Transfer-Encoding: 8bit"; $message = "Distance >> ".$d1." to final destination and ".$d2." from start (meters)\r\n"; $message .= "Speed >> ".round($hhsb_speed,2)." (m/s)"; $subject = "distance"; mail($emailto, $subject, $message, $headers); #        $esya = 'http:///?'.$hhsb_clat.':'.$hhsb_clon.':'.$hhsb_hdop.':'.$hhsb_alt.':'.$hhsb_speed.':'.$hhsb_usr.':'.$hhsb_n; $ch = curl_init($esya); $res=curl_exec($ch); curl_close($ch); $ans=json_decode($res); echo $ans->response; //{"s":1} -,    ?>
      
      







非常に重要な段階は、OsmAndでフォームのライブ追跡のWebアドレスを記述することです。



h͇t͇t͇p͇://hosting_does_not_advertise/fd.php?clat={0}&clon={1}&hdop={3}&alt={4}&speed={5}&slat=53.393&slon=58.756&flat=55.3&flon=61.5&eml=emailto@gmail.com&rpl=emailfrom@mail.ru&usr=[osmohash]&n=[num]











同じ概念でウェイポイントを奪い、ウェイポイントを追加し、小さなデータベースがある場合は完全に向きを変えることができます。 しかし、私の膝蓋骨の最小値はすでに完了しています...

... がんばって ! アンドロイドを充電するために残っています。 結局のところ、あなたが充電するために爆破しないと、フォーカスは機能しません。



特定された欠点のうち:



しかし、そのような球形に理想的で、思慮深く、論理的に完成したライフハックの骨を洗うだけで十分です。なぜなら私たちはすでにその場所に到着しているからです。

距離>> 29から最終目的地まで、開始から247194(メートル)

速度>> 0.0(m / s)



All Articles