Skip to content

/AWS1/IF_LOC=>SEARCHPLACEINDEXFORPOSITION()

About SearchPlaceIndexForPosition

This operation is no longer current and may be deprecated in the future. We recommend you upgrade to ReverseGeocode or SearchNearby unless you require Grab data.

  • SearchPlaceIndexForPosition is part of a previous Amazon Location Service Places API (version 1) which has been superseded by a more intuitive, powerful, and complete API (version 2).

  • The version 2 ReverseGeocode operation gives better results in the address reverse-geocoding use case, while the version 2 SearchNearby operation gives better results when searching for businesses and points of interest near a specific location.

  • If you are using an Amazon Web Services SDK or the Amazon Web Services CLI, note that the Places API version 2 is found under geo-places or geo_places, not under location.

  • Since Grab is not yet fully supported in Places API version 2, we recommend you continue using API version 1 when using Grab.

Reverse geocodes a given coordinate and returns a legible address. Allows you to search for Places or points of interest near a given position.

Method Signature

METHODS /AWS1/IF_LOC~SEARCHPLACEINDEXFORPOSITION
  IMPORTING
    !IV_INDEXNAME TYPE /AWS1/LOCRESOURCENAME OPTIONAL
    !IT_POSITION TYPE /AWS1/CL_LOCPOSITION_W=>TT_POSITION OPTIONAL
    !IV_MAXRESULTS TYPE /AWS1/LOCPLACEIDXSRCHRSLTLIMIT OPTIONAL
    !IV_LANGUAGE TYPE /AWS1/LOCLANGUAGETAG OPTIONAL
    !IV_KEY TYPE /AWS1/LOCAPIKEY OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_locsrchplaceidxforp01
  RAISING
    /AWS1/CX_LOCACCESSDENIEDEX
    /AWS1/CX_LOCINTERNALSERVEREX
    /AWS1/CX_LOCRESOURCENOTFOUNDEX
    /AWS1/CX_LOCTHROTTLINGEX
    /AWS1/CX_LOCVALIDATIONEX
    /AWS1/CX_LOCCLIENTEXC
    /AWS1/CX_LOCSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_indexname TYPE /AWS1/LOCRESOURCENAME /AWS1/LOCRESOURCENAME

The name of the place index resource you want to use for the search.

it_position TYPE /AWS1/CL_LOCPOSITION_W=>TT_POSITION TT_POSITION

Specifies the longitude and latitude of the position to query.

This parameter must contain a pair of numbers. The first number represents the X coordinate, or longitude; the second number represents the Y coordinate, or latitude.

For example, [-123.1174, 49.2847] represents a position with longitude -123.1174 and latitude 49.2847.

Optional arguments:

iv_maxresults TYPE /AWS1/LOCPLACEIDXSRCHRSLTLIMIT /AWS1/LOCPLACEIDXSRCHRSLTLIMIT

An optional parameter. The maximum number of results returned per request.

Default value: 50

iv_language TYPE /AWS1/LOCLANGUAGETAG /AWS1/LOCLANGUAGETAG

The preferred language used to return results. The value must be a valid BCP 47 language tag, for example, en for English.

This setting affects the languages used in the results, but not the results themselves. If no language is specified, or not supported for a particular result, the partner automatically chooses a language for the result.

For an example, we'll use the Greek language. You search for a location around Athens, Greece, with the language parameter set to en. The city in the results will most likely be returned as Athens.

If you set the language parameter to el, for Greek, then the city in the results will more likely be returned as Αθήνα.

If the data provider does not have a value for Greek, the result will be in a language that the provider does support.

iv_key TYPE /AWS1/LOCAPIKEY /AWS1/LOCAPIKEY

The optional API key to authorize the request.

RETURNING

oo_output TYPE REF TO /aws1/cl_locsrchplaceidxforp01 /AWS1/CL_LOCSRCHPLACEIDXFORP01

Domain /AWS1/RT_ACCOUNT_ID
Primitive Type NUMC

Examples

Syntax Example

This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.

DATA(lo_result) = lo_client->searchplaceindexforposition(
  it_position = VALUE /aws1/cl_locposition_w=>tt_position(
    ( new /aws1/cl_locposition_w( |0.1| ) )
  )
  iv_indexname = |string|
  iv_key = |string|
  iv_language = |string|
  iv_maxresults = 123
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lo_searchplaceindexforposi = lo_result->get_summary( ).
  IF lo_searchplaceindexforposi IS NOT INITIAL.
    LOOP AT lo_searchplaceindexforposi->get_position( ) into lo_row.
      lo_row_1 = lo_row.
      IF lo_row_1 IS NOT INITIAL.
        lv_double = lo_row_1->get_value( ).
      ENDIF.
    ENDLOOP.
    lv_placeindexsearchresultl = lo_searchplaceindexforposi->get_maxresults( ).
    lv_string = lo_searchplaceindexforposi->get_datasource( ).
    lv_languagetag = lo_searchplaceindexforposi->get_language( ).
  ENDIF.
  LOOP AT lo_result->get_results( ) into lo_row_2.
    lo_row_3 = lo_row_2.
    IF lo_row_3 IS NOT INITIAL.
      lo_place = lo_row_3->get_place( ).
      IF lo_place IS NOT INITIAL.
        lv_sensitivestring = lo_place->get_label( ).
        lo_placegeometry = lo_place->get_geometry( ).
        IF lo_placegeometry IS NOT INITIAL.
          LOOP AT lo_placegeometry->get_point( ) into lo_row.
            lo_row_1 = lo_row.
            IF lo_row_1 IS NOT INITIAL.
              lv_double = lo_row_1->get_value( ).
            ENDIF.
          ENDLOOP.
        ENDIF.
        lv_sensitivestring = lo_place->get_addressnumber( ).
        lv_sensitivestring = lo_place->get_street( ).
        lv_sensitivestring = lo_place->get_neighborhood( ).
        lv_sensitivestring = lo_place->get_municipality( ).
        lv_sensitivestring = lo_place->get_subregion( ).
        lv_sensitivestring = lo_place->get_region( ).
        lv_sensitivestring = lo_place->get_country( ).
        lv_sensitivestring = lo_place->get_postalcode( ).
        lv_sensitiveboolean = lo_place->get_interpolated( ).
        lo_timezone = lo_place->get_timezone( ).
        IF lo_timezone IS NOT INITIAL.
          lv_sensitivestring = lo_timezone->get_name( ).
          lv_sensitiveinteger = lo_timezone->get_offset( ).
        ENDIF.
        lv_sensitivestring = lo_place->get_unittype( ).
        lv_sensitivestring = lo_place->get_unitnumber( ).
        LOOP AT lo_place->get_categories( ) into lo_row_4.
          lo_row_5 = lo_row_4.
          IF lo_row_5 IS NOT INITIAL.
            lv_placecategory = lo_row_5->get_value( ).
          ENDIF.
        ENDLOOP.
        LOOP AT lo_place->get_supplementalcategories( ) into lo_row_6.
          lo_row_7 = lo_row_6.
          IF lo_row_7 IS NOT INITIAL.
            lv_placesupplementalcatego = lo_row_7->get_value( ).
          ENDIF.
        ENDLOOP.
        lv_sensitivestring = lo_place->get_submunicipality( ).
      ENDIF.
      lv_sensitivedouble = lo_row_3->get_distance( ).
      lv_placeid = lo_row_3->get_placeid( ).
    ENDIF.
  ENDLOOP.
ENDIF.