Un Usuario hizo la siguiente pregunta
Hola Experto,
Necesito tu ayuda en un desarrollo
Me gustaría desarrollar un programa en SAP ABAP para encontrar la latitud y longitud de un lugar en particular,
Tengo un nombre de calle, ciudad, código PIN y país al que lo reenvío http://itouchmap.com/latlong.html
y obtengo User Latitude & Longitude, pero estoy haciendo esta actividad manualmente y quiero hacerlo a través del programa ABAP.
Quiero una forma de obtener Lat Long desde el enlace web y mostrarlo como resultado de un informe ABAP.
Consulte el archivo adjunto que contiene un proceso manual de mi actividad actual.
Gracias y Saludos,
Subhanshu Shrivastava
3 respuestas
Ex miembro
Hola Subhanshu,
La latitud y la longitud se pueden obtener utilizando el sitio web
http://maps.google.com/maps/api/geocode/xml?address=jeddah
Este resultado se devuelve en formato xml.
Necesita analizar el xml y sacar Latitud y Longitud.
Puede verificar el código a continuación escrito usando la fuente
——Tutoriales de SAP y ABAP: Código simple para consumir el servicio web usando SAP ABAP
* Y ———————————————— —- ——————— *
* & Pantalla de selección
* Y ———————————————— —- ——————— *
PARÁMETROS: p_cnt TIPO t005t-landx.* Y ———————————————— —- ——————— *
* & Tipos y detalles
* Y ———————————————— —- ——————— *
DETALLES: http_client TYPE REF TO if_http_client,
String TYPE http_url,
TIPO cadena p_content.* Y ———————————————— —- ——————— *
* & Inicio de selección
* Y ———————————————— —- ——————— *
INICIO-SELECCIONAR.CONCATENAR ‘http://maps.google.com/maps/api/geocode/xml?address=» ‘
p_cnt
INT http: // url.* Creando un nuevo objeto IF_HTTP_Client
MÉTODO DE APLICACIÓN cl_http_client => create_by_url
EXPORTACIONES
url = http_url
IMPORTANTE
cliente = http_client
Excepciones
argumento_no_encontrado = 1
plugin_not_active = 2
internal_error = 3
OTRO = 4.http_client-> request-> set_header_field (name = «~ request_method» value = «GET»).
* Envíe la solicitud
http_client-> enviar ().* Mitigar el resultado
MÉTODO DE SOLICITUD http_client-> get
Excepciones
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTRO = 4.p_content = http_client-> responder-> get_cdata ().
* Y ———————————————— —- ——————— *
* & Procesamiento de cadenas
* Y ———————————————— —- ——————— *DETALLES: syst-tabix TIPO moff,
syst-tabix TIPO moff1,
len TYPE syst-tabix,
lat TIPO C LONGITUD 20,
lng TIPO C LONGITUD 20.HACER.
FIN ‘‘IN ROINN OFFSET moff de p_content IGNORANDO CASE MATCH OFFSET moff. ‘IN ROINN OFFSET moff OF p_content IGNORANDO CASE MATCH OFFSET moff1.
SI sy-subrc = 0.
moff = moff + 10.
FIN ‘
len = moff1 – moff.* ————— obtener latitud
FIN ‘
‘IN ROINN OFFSET moff OF p_content IGNORANDO CASE MATCH OFFSET moff. ‘IN ROINN OFFSET moff OF p_content IGNORANDO CASE MATCH OFFSET moff1.
SI sy-subrc = 0.
moff = moff + 5.
FIN ‘
len = moff1 – moff.
lat = p_content + moff (len).
ESCRIBIR: / ‘Longitud’, lat.
TERMINARA SI.* ————— obtener longitud
FIN ‘
‘IN ROINN OFFSET moff de p_content IGNORANDO CASE MATCH OFFSET moff. ‘IN DEFS OFFSET moff de p_content IGNORANDO CASE MATCH OFFSET moff1.
SI sy-subrc = 0.
moff = moff + 5.
FIN ‘
len = moff1 – moff.
lng = p_content + moff (len).
ESCRIBIR: / ‘Latitud’, lng.
TERMINARA SI.MÁS.
EL CAMINO DE SALIDA.
TERMINARA SI.
ENDDO.Puede llamar a la API de Google Maps para codificación geográfica. Necesitaría la clave API de Google. Si es su cliente, debe obtener la cuenta de cliente para usos posteriores. Una vez que tenga la clave, puede intentar realizar la llamada HTTP.
Consulte la llamada de codificación geográfica:
En ABAP, realice la llamada HTTP utilizando CL_HTTP_CLIENT. Hay bastantes ejemplos en la web para esto, pero puede consultarlos. Cómo crear un código QR y mostrarlo en Smartform
para llamadas HTTP.
MÉTODO DE APLICACIÓN cl_http_client => create_by_url
EXPORTACIONES
url = url
IMPORTANTE
cliente = http_client
Excepciones
argumento_no_encontrado = 1
plugin_not_active = 2
internal_error = 3
OTRO = 4.
SI sy-subrc = 0.
http_client-> enviar ().
http_client-> get ().
contenido = http_client-> respuesta-> get_data ().
http_client-> gar ().
TERMINARA SI.
Pase la URL así.
https://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=API_KEY
Cuando recupere el contenido, analícelo para obtener los valores deseados.
Acerca de,
Naimesh PatelEx miembro
Este mensaje ha sido modificado.