SDK for Android 開発者ガイド

ジオ コーディングおよび Reverse ジオ コーディング

SDK for Android のジオ コーディングおよびリバースジオ コーディング APIを使用すると、アプリケーション開発者は位置情報および構造化アドレスを要求するための検索機能を提供できます。 ジオ コーディング API は、テキストクエリからGeoCoordinateに解決されますが、逆方向のジオ コーディング API は、GeoCoordinateAddressなどの地理的データに解決されます。Addressには、番地、番地、市区町村、国、および市区町村を含むテキストのアドレス情報が提供されます。 住所または地図上のポイントに関するすべての情報が含まれます。 Location は、追加の属性を取得できる地図上の物理的なポイントを表します。 これらの追加属性には、Locationの一意の識別子、ラベル、 AddressGeoCoordinate 位置、 および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 で開発されたアプリケーションは、オフラインのジオ コーディングを実行できます。これにより、アクティブなデータ接続なしでジオコードおよびリバースジオコードリクエストを実行できます。 アクティブなデータ接続が利用できない場合、およびマップとデータベースの情報がすでにダウンロードおよびキャッシュされている場合に、この処理が自動的に実行されます。