in abap-sdk/ZGOOG_SDK_QUICKSTART/zr_qs_geocode.prog.abap [0:0]
METHOD component_filtering.
DATA: lv_q_address TYPE string,
lt_q_components TYPE /goog/cl_geocode=>ty_t_string.
WRITE: |Component filtering: Restrict the results to a specific country, postal code, or locality.|.
ULINE.
* Populate relevant parameters
lv_q_address = 'High St hasting'.
lt_q_components = VALUE #( ( |country:GB| ) ).
* Call API method: org.openapitools.api.GeocodingAPI
CALL METHOD mo_geocode->geocode
EXPORTING
iv_q_address = lv_q_address
it_q_components = lt_q_components
IMPORTING
es_output = DATA(ls_output)
ev_ret_code = DATA(lv_ret_code)
ev_err_text = DATA(lv_err_text)
es_err_resp = DATA(ls_err_resp).
IF mo_geocode->is_success( lv_ret_code ) AND mo_geocode->is_status_ok( ).
WRITE: / |Geocode Lookup Successful|.
TRY.
WRITE:/ |Address: { ls_output-results[ 1 ]-formatted_address }|.
WRITE:/ |Latitude, Longitude: ({ ls_output-results[ 1 ]-geometry-location-lat }, { ls_output-results[ 1 ]-geometry-location-lng })|.
CATCH cx_sy_itab_line_not_found.
ENDTRY.
ELSE.
MESSAGE lv_err_text TYPE 'E'.
ENDIF.