ジオ コーディングおよび Reverse ジオ コーディング
SDK for Android のジオ コーディングおよびリバースジオ コーディング APIを使用すると、アプリケーション開発者は位置情報および構造化アドレスを要求するための検索機能を提供できます。 ジオ コーディング API は、テキストクエリからGeoCoordinate
に解決されますが、逆方向のジオ コーディング API は、GeoCoordinate
Address
などの地理的データに解決されます。Address
には、番地、番地、市区町村、国、および市区町村を含むテキストのアドレス情報が提供されます。 住所または地図上のポイントに関するすべての情報が含まれます。 Location
は、追加の属性を取得できる地図上の物理的なポイントを表します。 これらの追加属性には、Location
の一意の識別子、ラベル、 Address
GeoCoordinate
位置、 およびGeoBoundingBox
が含まれます。
GitHub でのジオ コーディングおよび Reverse ジオ コーディングの例
この機能の例について は、 https://github.com/heremaps/を参照してください。
GeocodeRequest クラス
GeocodeRequest
拡張を表し Request
ます。 GeocodeRequest
テキストクエリ文字列と地理的領域の引数を組み合わせて、 1 つのボックス ( 自由形式のテキスト ) で検索して作成できます。 ワンボックスリクエストの作成に使用されるメソッドを次に示します。
GeocodeRequest request = new GeocodeRequest(String).setSearchArea(GeoCoordinate, int)
上記のメソッドは GeocodeRequest
、オブジェクトを返します。 検索を開始するには、を呼び出し GeocodeRequest.execute()
ます。 このメソッド ResultListener
では、引数としてが必要です。 検索が完了 ResultListener.onCompleted()
すると、結果のステータスと検索された場所のリストを使用してメソッドが呼び出されます。
リクエストが呼び出された後 GeocodeRequest.cancel()
、メソッドを使用してキャンセルでき true
ます。メソッドは、リクエストが正常にキャンセルされた場合に返されます。 GeocodeRequest
では、リクエストの完了時にLocation
オブジェクトのリストが必要です。
次のコード例は、の実行方法を示し GeocodeRequest
ています。
// Implementation of ResultListener
class GeocodeListener implements ResultListener<List<GeocodeResult>> {
@Override
public void onCompleted(List<GeocodeResult> data, ErrorCode error) {
if (error != ErrorCode.NONE) {
// Handle error
...
} else {
// Process result data
...
}
}
}
// Instantiate a GeoCoordinate object
GeoCoordinate vancouver = new GeoCoordinate( 49.2849,- 123.1252);
// Example code for creating a OneBox Request
ResultListener<List<GeocodeResult>> listener = new GeocodeListener();
GeocodeRequest request = new GeocodeRequest("Granville").setSearchArea(vancouver, 5000);
if (request.execute(listener) != ErrorCode.NONE) {
// Handle request error
...
}
ReverseGeocodeRequest クラス
このReverseGeocodeRequest
クラスは、Location
データの取得に使用される拡張Request
を表します。 リクエストは GeoCoordinate
、次のようにを使用して作成されます。
new ReverseGeocodeRequest(GeoCoordinate)
上記のメソッドは ReverseGeocodeRequest
、オブジェクトを返します。 リクエストを呼び出すには、返されたReverseGeocodeRequest
オブジェクトのexecute()
メソッドを呼び出し、ResultListener
を渡して、リクエストの完了に関する情報を取得します。 リクエストが呼び出されると、ReverseGeocodeRequest.cancel()
メソッドを使用してリクエストをキャンセルできます。リクエストが正常にキャンセルされた場合にcancel()
true
返します。 構造 ReverseGeocodeRequest
化されたのは Location
、リクエストの完了時に要求されます。
ReverseGeocodeRequest
を使用して作成する例を次に示し new ReverseGeocodeRequest(GeoCoordinate)
ます。
// Implementation of ResultListener
class ReverseGeocodeListener implements ResultListener<Location> {
@Override
public void onCompleted(Location data, ErrorCode error) {
if (error != ErrorCode.NONE) {
// Handle error
...
} else {
// Process result data
...
}
}
}
// Instantiate a GeoCoordinate object
GeoCoordinate vancouver = new GeoCoordinate( 49.2849,- 123.1252);
// Example code for creating ReverseGeocodeRequest
ResultListener<Location> listener = new ReverseGeocodeListener();
ReverseGeocodeRequest request = new ReverseGeocodeRequest(vancouver);
if (request.execute(listener) != ErrorCode.NONE) {
// Handle request error
...
}
既定では、上記のリバースジオコードリクエストは、最も近い番地を検索します。 または、次のいずれかのモードでリバースジオ コーディングリクエストを作成することもできReverseGeocodeMode
ます () 。
-
RETRIEVE_ADDRESSES
- 最寄りの番地を検索 ( 上記と同じ ) -
RETRIEVE_AREAS
- リクエストで指定された位置の管理エリア情報を取得します -
RETRIEVE_LANDMARKS
- リクエストに応じて、公園や湖などのランドマークを検索できます -
RETRIEVE_ALL
- 通り、行政エリア、ランドマークを検索します。 このモードでは、 1 回の呼び出しで、前の 3 つのモードの結果が集約されます -
TRACK_POSITION
- 位置と方位に基づいて、番地と番地の情報を取得します
このタイプのリクエストの使用例については、次のトピックを参照してください。 bearing
このパラメータは、を使用する場合にのみ使用 TRACK_POSITION
されます。
ResultListener<Location> listener = new ReverseGeocodeListener();
ReverseGeocodeRequest request = new ReverseGeocodeRequest(geoCoord, RETRIEVE_ADDRESSES, bearing);
if (request.execute(listener) != ErrorCode.NONE)
{
// Handle request error ...
}
オフラインジオ コーディング
SDK for Android で開発されたアプリケーションは、オフラインのジオ コーディングを実行できます。これにより、アクティブなデータ接続なしでジオコードおよびリバースジオコードリクエストを実行できます。 アクティブなデータ接続が利用できない場合、およびマップとデータベースの情報がすでにダウンロードおよびキャッシュされている場合に、この処理が自動的に実行されます。