System.Sensors.TCustomLocationSensor
Delphi
TCustomLocationSensor = class abstract(TCustomSensor)
C++
class PASCALIMPLEMENTATION TCustomLocationSensor : public TCustomSensor
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | System.Sensors.pas System.Sensors.hpp |
System.Sensors | System.Sensors |
説明
デバイスの位置情報を決定するために使用されます。
位置センサは、Start メソッドを使用して開始する必要があります。 Start はユーザーに、デバイスの位置の変更や、提供できるその他の情報を通知します。 Stop メソッドを使用して、位置センサは位置情報の更新を受信することを停止します。
位置センサでは、ハードウェア固有のさまざまなメソッドによってデバイスの位置情報を決定できます。使用中のメソッドは位置センサを特定の種類に設定します。SensorType は位置センサの種類を返します。
機能や提供可能な位置情報の量は位置センサによって異なるため、AvailableProperties プロパティを確認して、位置センサ オブジェクト内の実際のどのプロパティが使用可能で有効な値を持っているかを判定する必要があります。たとえば、Latitude プロパティと Longitude プロパティの値のみ提供できるセンサがあるとしましょう。このような場合、AvailableProperties には Latitude と Longitude のみ格納されています。位置情報に関連する残りのプロパティには、有効な値が格納されていません。
位置センサが最新の位置情報を返すことができるのは、その権限が与えられている場合だけです。センサでデバイスの位置を決定することが適切かどうかをユーザーがオペレーティング システムから確認されて初めて、それが可能になります。Authorized には、その件についてのユーザーの応答を示す値が格納されています。
Accuracy は、センサで決定されるデバイスの地理的位置がデバイスの実際の地理的位置と比べてどの程度正確かを表します。
Distance は、位置センサにデバイスの位置を再検索させて新しい位置情報を返させるために必要な、デバイスの移動距離の最小値です。
位置センサには、デバイスの位置に関する情報を取得するためのプロパティがあります。プラットフォームやセンサ ハードウェアによっては、これらのプロパティ内の情報が、要求を受けるとすぐに使用できるのではなく、センサが実際の情報を受信したときのみ使用できる場合があります。
同期的に動作するセンサもあれば、非同期的に動作するセンサもあります。TCustomLocationSensor は、位置センサ間およびプラットフォーム固有機能間のこのような違いを克服し、使いやすいインターフェイスの下でそれらを統一しようとしています。同期センサへのデータ要求があると、呼び出し側スレッドは情報を取得できるまで待機しなければならないのに対して、非同期センサへのデータ要求では、スレッドはブロックされず、位置センサで位置情報が決定されるまでプログラム フローは普通に続行できます。その時点で、位置センサはコールバックを呼び出して、デバイスの位置に関する情報を取得します。
これら 2 つの正反対の動作の違いを克服するため、TCustomLocationSensor は、実際のセンサがあたかも同期的であるかのように動作します。プロパティの読み取り時に、基礎となるプラットフォーム クラスが非同期的に動作した場合、TCustomLocationSensor は、そのプロパティのキャッシュされている値(通常は、最後に決定された値)を返します。最後の値がなければ、センサで位置情報が決定されるまでデフォルト値が返されます。
プラットフォーム サポート
センサ データ
位置センサで測定されたデータを提供するプロパティの各プラットフォームでのサポート状況を次の表に示します。
項目 | Android | iOS | OS X | Windows |
---|---|---|---|---|
Address1 | サポート | |||
Address2 | サポート | |||
Altitude | サポート | サポート | サポート | サポート |
City | サポート | |||
CountryRegion | サポート | |||
ErrorRadius | サポート | |||
Latitude | サポート | サポート | サポート | サポート |
Longitude | サポート | サポート | サポート | サポート |
MagneticHeading | サポート | サポート | ||
PostalCode | サポート | |||
Speed | サポート | サポート | サポート | サポート |
TrueHeading | サポート | サポート | サポート |
センサ プロパティ
位置センサの構成と管理に使用できるプロパティの各プラットフォームでのサポート状況を次の表に示します。
項目 | Android | iOS | OS X | Windows | 備考 |
---|---|---|---|---|---|
Accuracy | サポート | サポート | |||
Distance | サポート | サポート |
| ||
LocationChange | サポート | サポート |
| ||
Optimize | サポート | ||||
Regions | サポート |
関連項目
- モバイル チュートリアル:位置センサを使用する(iOS および Android)
- FMX.SensorInfo サンプル
- モバイル サンプル コード(Location スニペット)
- System.Sensors.Components.TLocationSensor
- System.Sensors.TCustomSensor
- System.Sensors.TCustomSensor.Start
- System.Sensors.TCustomSensor.Stop
- System.Sensors.TCustomLocationSensor.SensorType
- System.Sensors.TCustomLocationSensor.AvailableProperties
- System.Sensors.TCustomLocationSensor.Latitude
- System.Sensors.TCustomLocationSensor.Longitude
- System.Sensors.TCustomLocationSensor.Authorized
- System.Sensors.TCustomLocationSensor.Accuracy
- System.Sensors.TCustomLocationSensor.Distance