/AWS1/IF_GEP=>REVERSEGEOCODE()¶
About ReverseGeocode¶
ReverseGeocode converts geographic coordinates into a human-readable address or place. You can obtain address component, and other related information such as place type, category, street information. The Reverse Geocode API supports filtering to on place type so that you can refine result based on your need. Also, The Reverse Geocode API can also provide additional features such as time zone information and the inclusion of political views.
Method Signature¶
METHODS /AWS1/IF_GEP~REVERSEGEOCODE
IMPORTING
!IT_QUERYPOSITION TYPE /AWS1/CL_GEPPOSITION_W=>TT_POSITION OPTIONAL
!IV_QUERYRADIUS TYPE /AWS1/GEPDISTANCEMETERS OPTIONAL
!IV_MAXRESULTS TYPE /AWS1/GEPINTEGER OPTIONAL
!IO_FILTER TYPE REF TO /AWS1/CL_GEPREVERSEGEOCODEFILT OPTIONAL
!IT_ADDITIONALFEATURES TYPE /AWS1/CL_GEPREVERSEGEOCODEAD00=>TT_REVERSEGEOCODEADDLFEATLIST OPTIONAL
!IV_LANGUAGE TYPE /AWS1/GEPLANGUAGETAG OPTIONAL
!IV_POLITICALVIEW TYPE /AWS1/GEPCOUNTRYCODE OPTIONAL
!IV_INTENDEDUSE TYPE /AWS1/GEPREVERSEGEOCODEINTEN00 OPTIONAL
!IV_KEY TYPE /AWS1/GEPAPIKEY OPTIONAL
RETURNING
VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_gepreversegeocodersp
RAISING
/AWS1/CX_GEPACCESSDENIEDEX
/AWS1/CX_GEPINTERNALSERVEREX
/AWS1/CX_GEPTHROTTLINGEX
/AWS1/CX_GEPVALIDATIONEX
/AWS1/CX_GEPCLIENTEXC
/AWS1/CX_GEPSERVEREXC
/AWS1/CX_RT_TECHNICAL_GENERIC
/AWS1/CX_RT_SERVICE_GENERIC.
IMPORTING¶
Required arguments:¶
it_queryposition TYPE /AWS1/CL_GEPPOSITION_W=>TT_POSITION TT_POSITION¶
The position, in
[lng, lat]for which you are querying nearby results for. Results closer to the position will be ranked higher then results further away from the position
Optional arguments:¶
iv_queryradius TYPE /AWS1/GEPDISTANCEMETERS /AWS1/GEPDISTANCEMETERS¶
The maximum distance in meters from the QueryPosition from which a result will be returned.
iv_maxresults TYPE /AWS1/GEPINTEGER /AWS1/GEPINTEGER¶
An optional limit for the number of results returned in a single call.
io_filter TYPE REF TO /AWS1/CL_GEPREVERSEGEOCODEFILT /AWS1/CL_GEPREVERSEGEOCODEFILT¶
A structure which contains a set of inclusion/exclusion properties that results must possess in order to be returned as a result.
it_additionalfeatures TYPE /AWS1/CL_GEPREVERSEGEOCODEAD00=>TT_REVERSEGEOCODEADDLFEATLIST TT_REVERSEGEOCODEADDLFEATLIST¶
A list of optional additional parameters, such as time zone that can be requested for each result.
iv_language TYPE /AWS1/GEPLANGUAGETAG /AWS1/GEPLANGUAGETAG¶
A list of BCP 47 compliant language codes for the results to be rendered in. If there is no data for the result in the requested language, data will be returned in the default language for the entry.
iv_politicalview TYPE /AWS1/GEPCOUNTRYCODE /AWS1/GEPCOUNTRYCODE¶
The alpha-2 or alpha-3 character code for the political view of a country. The political view applies to the results of the request to represent unresolved territorial claims through the point of view of the specified country.
iv_intendeduse TYPE /AWS1/GEPREVERSEGEOCODEINTEN00 /AWS1/GEPREVERSEGEOCODEINTEN00¶
Indicates if the results will be stored. Defaults to
SingleUse, if left empty.Storing the response of an ReverseGeocode query is required to comply with service terms, but charged at a higher cost per request. Please review the user agreement and service pricing structure to determine the correct setting for your use case.
iv_key TYPE /AWS1/GEPAPIKEY /AWS1/GEPAPIKEY¶
Optional: The API key to be used for authorization. Either an API key or valid SigV4 signature must be provided when making a request.
RETURNING¶
oo_output TYPE REF TO /aws1/cl_gepreversegeocodersp /AWS1/CL_GEPREVERSEGEOCODERSP¶
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->reversegeocode(
io_filter = new /aws1/cl_gepreversegeocodefilt(
it_includeplacetypes = VALUE /aws1/cl_gepreversegeocodefi00=>tt_reversegeocodefiltplacety00(
( new /aws1/cl_gepreversegeocodefi00( |string| ) )
)
)
it_additionalfeatures = VALUE /aws1/cl_gepreversegeocodead00=>tt_reversegeocodeaddlfeatlist(
( new /aws1/cl_gepreversegeocodead00( |string| ) )
)
it_queryposition = VALUE /aws1/cl_gepposition_w=>tt_position(
( new /aws1/cl_gepposition_w( |0.1| ) )
)
iv_intendeduse = |string|
iv_key = |string|
iv_language = |string|
iv_maxresults = 123
iv_politicalview = |string|
iv_queryradius = 123
).
This is an example of reading all possible response values
lo_result = lo_result.
IF lo_result IS NOT INITIAL.
lv_string = lo_result->get_pricingbucket( ).
LOOP AT lo_result->get_resultitems( ) into lo_row.
lo_row_1 = lo_row.
IF lo_row_1 IS NOT INITIAL.
lv_sensitivestring = lo_row_1->get_placeid( ).
lv_placetype = lo_row_1->get_placetype( ).
lv_sensitivestring = lo_row_1->get_title( ).
lo_address = lo_row_1->get_address( ).
IF lo_address IS NOT INITIAL.
lv_sensitivestring = lo_address->get_label( ).
lo_country = lo_address->get_country( ).
IF lo_country IS NOT INITIAL.
lv_countrycode2 = lo_country->get_code2( ).
lv_countrycode3 = lo_country->get_code3( ).
lv_sensitivestring = lo_country->get_name( ).
ENDIF.
lo_region = lo_address->get_region( ).
IF lo_region IS NOT INITIAL.
lv_sensitivestring = lo_region->get_code( ).
lv_sensitivestring = lo_region->get_name( ).
ENDIF.
lo_subregion = lo_address->get_subregion( ).
IF lo_subregion IS NOT INITIAL.
lv_sensitivestring = lo_subregion->get_code( ).
lv_sensitivestring = lo_subregion->get_name( ).
ENDIF.
lv_sensitivestring = lo_address->get_locality( ).
lv_sensitivestring = lo_address->get_district( ).
lv_sensitivestring = lo_address->get_subdistrict( ).
lv_sensitivestring = lo_address->get_postalcode( ).
lv_sensitivestring = lo_address->get_block( ).
lv_sensitivestring = lo_address->get_subblock( ).
LOOP AT lo_address->get_intersection( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_intersectionstreet = lo_row_3->get_value( ).
ENDIF.
ENDLOOP.
lv_sensitivestring = lo_address->get_street( ).
LOOP AT lo_address->get_streetcomponents( ) into lo_row_4.
lo_row_5 = lo_row_4.
IF lo_row_5 IS NOT INITIAL.
lv_sensitivestring = lo_row_5->get_basename( ).
lv_sensitivestring = lo_row_5->get_type( ).
lv_typeplacement = lo_row_5->get_typeplacement( ).
lv_typeseparator = lo_row_5->get_typeseparator( ).
lv_sensitivestring = lo_row_5->get_prefix( ).
lv_sensitivestring = lo_row_5->get_suffix( ).
lv_sensitivestring = lo_row_5->get_direction( ).
lv_languagetag = lo_row_5->get_language( ).
ENDIF.
ENDLOOP.
lv_sensitivestring = lo_address->get_addressnumber( ).
lv_sensitivestring = lo_address->get_building( ).
LOOP AT lo_address->get_secaddresscomponents( ) into lo_row_6.
lo_row_7 = lo_row_6.
IF lo_row_7 IS NOT INITIAL.
lv_sensitivestring = lo_row_7->get_number( ).
ENDIF.
ENDLOOP.
ENDIF.
lv_sensitiveboolean = lo_row_1->get_addressnumbercorrected( ).
LOOP AT lo_row_1->get_postalcodedetails( ) into lo_row_8.
lo_row_9 = lo_row_8.
IF lo_row_9 IS NOT INITIAL.
lv_sensitivestring = lo_row_9->get_postalcode( ).
lv_postalauthority = lo_row_9->get_postalauthority( ).
lv_postalcodetype = lo_row_9->get_postalcodetype( ).
lo_uspszip = lo_row_9->get_uspszip( ).
IF lo_uspszip IS NOT INITIAL.
lv_zipclassificationcode = lo_uspszip->get_zipclassificationcode( ).
ENDIF.
lo_uspszipplus4 = lo_row_9->get_uspszipplus4( ).
IF lo_uspszipplus4 IS NOT INITIAL.
lv_recordtypecode = lo_uspszipplus4->get_recordtypecode( ).
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT lo_row_1->get_position( ) into lo_row_10.
lo_row_11 = lo_row_10.
IF lo_row_11 IS NOT INITIAL.
lv_double = lo_row_11->get_value( ).
ENDIF.
ENDLOOP.
lv_distancemeters = lo_row_1->get_distance( ).
LOOP AT lo_row_1->get_mapview( ) into lo_row_12.
lo_row_13 = lo_row_12.
IF lo_row_13 IS NOT INITIAL.
lv_double = lo_row_13->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_row_1->get_categories( ) into lo_row_14.
lo_row_15 = lo_row_14.
IF lo_row_15 IS NOT INITIAL.
lv_sensitivestring = lo_row_15->get_id( ).
lv_sensitivestring = lo_row_15->get_name( ).
lv_sensitivestring = lo_row_15->get_localizedname( ).
lv_sensitiveboolean = lo_row_15->get_primary( ).
ENDIF.
ENDLOOP.
LOOP AT lo_row_1->get_foodtypes( ) into lo_row_16.
lo_row_17 = lo_row_16.
IF lo_row_17 IS NOT INITIAL.
lv_sensitivestring = lo_row_17->get_localizedname( ).
lv_sensitivestring = lo_row_17->get_id( ).
lv_sensitiveboolean = lo_row_17->get_primary( ).
ENDIF.
ENDLOOP.
LOOP AT lo_row_1->get_accesspoints( ) into lo_row_18.
lo_row_19 = lo_row_18.
IF lo_row_19 IS NOT INITIAL.
LOOP AT lo_row_19->get_position( ) into lo_row_10.
lo_row_11 = lo_row_10.
IF lo_row_11 IS NOT INITIAL.
lv_double = lo_row_11->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
lo_timezone = lo_row_1->get_timezone( ).
IF lo_timezone IS NOT INITIAL.
lv_sensitivestring = lo_timezone->get_name( ).
lv_sensitivestring = lo_timezone->get_offset( ).
lv_durationseconds = lo_timezone->get_offsetseconds( ).
ENDIF.
lv_countrycode3 = lo_row_1->get_politicalview( ).
LOOP AT lo_row_1->get_intersections( ) into lo_row_20.
lo_row_21 = lo_row_20.
IF lo_row_21 IS NOT INITIAL.
lv_sensitivestring = lo_row_21->get_placeid( ).
lv_sensitivestring = lo_row_21->get_title( ).
lo_address = lo_row_21->get_address( ).
IF lo_address IS NOT INITIAL.
lv_sensitivestring = lo_address->get_label( ).
lo_country = lo_address->get_country( ).
IF lo_country IS NOT INITIAL.
lv_countrycode2 = lo_country->get_code2( ).
lv_countrycode3 = lo_country->get_code3( ).
lv_sensitivestring = lo_country->get_name( ).
ENDIF.
lo_region = lo_address->get_region( ).
IF lo_region IS NOT INITIAL.
lv_sensitivestring = lo_region->get_code( ).
lv_sensitivestring = lo_region->get_name( ).
ENDIF.
lo_subregion = lo_address->get_subregion( ).
IF lo_subregion IS NOT INITIAL.
lv_sensitivestring = lo_subregion->get_code( ).
lv_sensitivestring = lo_subregion->get_name( ).
ENDIF.
lv_sensitivestring = lo_address->get_locality( ).
lv_sensitivestring = lo_address->get_district( ).
lv_sensitivestring = lo_address->get_subdistrict( ).
lv_sensitivestring = lo_address->get_postalcode( ).
lv_sensitivestring = lo_address->get_block( ).
lv_sensitivestring = lo_address->get_subblock( ).
LOOP AT lo_address->get_intersection( ) into lo_row_2.
lo_row_3 = lo_row_2.
IF lo_row_3 IS NOT INITIAL.
lv_intersectionstreet = lo_row_3->get_value( ).
ENDIF.
ENDLOOP.
lv_sensitivestring = lo_address->get_street( ).
LOOP AT lo_address->get_streetcomponents( ) into lo_row_4.
lo_row_5 = lo_row_4.
IF lo_row_5 IS NOT INITIAL.
lv_sensitivestring = lo_row_5->get_basename( ).
lv_sensitivestring = lo_row_5->get_type( ).
lv_typeplacement = lo_row_5->get_typeplacement( ).
lv_typeseparator = lo_row_5->get_typeseparator( ).
lv_sensitivestring = lo_row_5->get_prefix( ).
lv_sensitivestring = lo_row_5->get_suffix( ).
lv_sensitivestring = lo_row_5->get_direction( ).
lv_languagetag = lo_row_5->get_language( ).
ENDIF.
ENDLOOP.
lv_sensitivestring = lo_address->get_addressnumber( ).
lv_sensitivestring = lo_address->get_building( ).
LOOP AT lo_address->get_secaddresscomponents( ) into lo_row_6.
lo_row_7 = lo_row_6.
IF lo_row_7 IS NOT INITIAL.
lv_sensitivestring = lo_row_7->get_number( ).
ENDIF.
ENDLOOP.
ENDIF.
LOOP AT lo_row_21->get_position( ) into lo_row_10.
lo_row_11 = lo_row_10.
IF lo_row_11 IS NOT INITIAL.
lv_double = lo_row_11->get_value( ).
ENDIF.
ENDLOOP.
lv_distancemeters = lo_row_21->get_distance( ).
lv_distancemeters = lo_row_21->get_routedistance( ).
LOOP AT lo_row_21->get_mapview( ) into lo_row_12.
lo_row_13 = lo_row_12.
IF lo_row_13 IS NOT INITIAL.
lv_double = lo_row_13->get_value( ).
ENDIF.
ENDLOOP.
LOOP AT lo_row_21->get_accesspoints( ) into lo_row_18.
lo_row_19 = lo_row_18.
IF lo_row_19 IS NOT INITIAL.
LOOP AT lo_row_19->get_position( ) into lo_row_10.
lo_row_11 = lo_row_10.
IF lo_row_11 IS NOT INITIAL.
lv_double = lo_row_11->get_value( ).
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDIF.