Spanish Buscar en google maps [SOLUCIONADO]

henry montoya

Member
Licensed User
Hola a todos.

Estoy trabajando con la librería de google maps y necesito buscar direcciones en el tal y como se hace en la web, en donde al colocar una dirección o un punto de referencia te muestra una lista de todas las sugerencias o posibles direcciones que coinciden con tu búsqueda.

Agradezco toda la ayuda que me puedan brindar.
 

henry montoya

Member
Licensed User
Hola Heppy, gracias por responder.

Ya estoy trabajando con la librería geocoder que obtiene la dirección de un punto localizado en el mapa por latitud y longitud, lo que estoy buscando hacer, es simular una funcionalidad igual a la caja de texto de búsqueda flotante de google maps en donde escribes una direccion y te va mostrando como lista unas sugerencias o todas las posibles coincidencias de esa direccion, te adjunto una imagen del objeto para ser mas especifico.

upload_2015-11-21_11-51-42.png


Mil gracias.
 

Attachments

  • Search googlemaps.png
    Search googlemaps.png
    289.5 KB · Views: 207

Heppy

Active Member
Licensed User
Hola Henry.

No he llegado a tanto, dejé aparcado un proyecto hace tiempo, por eso te he contestado con esa librería.

Supongo que hacen un barrido en coordenadas o será un API Google. No lo he tocado, solo la dirección exacta de la coordenada y para hacer unas pruebas.

Un saludo
 

bgsoft

Well-Known Member
Licensed User

bgsoft

Well-Known Member
Licensed User
Hola Henry

Si te quedó solucionado el problema, podrias añadir a la cabecera [SOLUCIONADO]? asi hacemos mas ágil el foro.
Gracias

Saludos
 

henry montoya

Member
Licensed User
Hola bgsoft.

Perdona la demora para responder, he estado un poco ocupado y apenas estoy retomando mi proyecto, te cuento que encontré justo lo que necesito mediante un servicio web de google places api (predictions) el cual consumo enviándole los parámetros a través de la url de la siguiente manera:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=calle+53+8a+16&key=Api_key

el cual me devuelve el siguiente json que no he podido parsearlo para obtener cada uno de los valores en el array y/o mostrarlo mediante una lista.

B4X:
{
   "predictions" : [
      {
         "description" : "Calle 53 # 8a 16, Medellín - Antioquia, Colombia",
         "id" : "00662c19ffad0a346cecb1cba81379b5dd320779",
         "matched_substrings" : [
            {
               "length" : 16,
               "offset" : 0
            }
         ],
         "place_id" : "EjFDYWxsZSA1MyAjIDhhIDE2LCBNZWRlbGzDrW4gLSBBbnRpb3F1aWEsIENvbG9tYmlh",
         "reference" : "CkQ1AAAApvrE66Y6A3u8IXZI1wwbGbkuPrkR2CCWg7WvOBA4gbEZcPjgzRrtEi36tqhLPy-UWdhnGvYfTfezRSZQXc2fBxIQkL9WJqV0bBQow-wx4TyjXBoUwjfywQkdgoWrT1s6T5lMOs-FgSE",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Calle 53 # 8a 16"
            },
            {
               "offset" : 18,
               "value" : "Medellín"
            },
            {
               "offset" : 29,
               "value" : "Antioquia"
            },
            {
               "offset" : 40,
               "value" : "Colombia"
            }
         ],
         "types" : [ "route", "geocode" ]
      },
      {
         "description" : "Calle 53 # 8a 16, Bello - Antioquia, Colombia",
         "id" : "e09be83c636d1bab95ede28a593b50af5a67c33c",
         "matched_substrings" : [
            {
               "length" : 16,
               "offset" : 0
            }
         ],
         "place_id" : "Ei1DYWxsZSA1MyAjIDhhIDE2LCBCZWxsbyAtIEFudGlvcXVpYSwgQ29sb21iaWE",
         "reference" : "CkQxAAAA57Am617TYbvQ2zmTtEfxyIqsrSRY6VVrcDpaB2E22NfzqHOAJsUVAgXyiJHagcs8t9K0hjCf92fRfkcOFyj2hxIQlFQwSeZFhrNrQyBP8EETABoUgTBM9R6HESMUDB3eIaI5aUG34NM",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Calle 53 # 8a 16"
            },
            {
               "offset" : 18,
               "value" : "Bello"
            },
            {
               "offset" : 26,
               "value" : "Antioquia"
            },
            {
               "offset" : 37,
               "value" : "Colombia"
            }
         ],
         "types" : [ "route", "geocode" ]
      },
      {
         "description" : "Calle 53 # 8a 16, Amagá - Antioquia, Colombia",
         "id" : "baac88a5ef0596a5b15fd7710717c77321f8325b",
         "matched_substrings" : [
            {
               "length" : 16,
               "offset" : 0
            }
         ],
         "place_id" : "Ei5DYWxsZSA1MyAjIDhhIDE2LCBBbWFnw6EgLSBBbnRpb3F1aWEsIENvbG9tYmlh",
         "reference" : "CkQyAAAANXUhylMW7PiEmNah5niqXlsZRI6rGCfyItbeobgGJlVVNgYUXCiglRy5luPdNqE0lzVnqMspS1i0cWtS_NnzyhIQLM1ABFSa3RXByDI_PnBt1xoU3isQ0CdFYsHMOFHZIi8rEDk4gWE",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Calle 53 # 8a 16"
            },
            {
               "offset" : 18,
               "value" : "Amagá"
            },
            {
               "offset" : 26,
               "value" : "Antioquia"
            },
            {
               "offset" : 37,
               "value" : "Colombia"
            }
         ],
         "types" : [ "route", "geocode" ]
      },
      {
         "description" : "Calle 53 # 8a 16, San Cristóbal - Antioquia, Colombia",
         "id" : "0c91b49e0a58cf240a60582dd8d57369481e5361",
         "matched_substrings" : [
            {
               "length" : 16,
               "offset" : 0
            }
         ],
         "place_id" : "EjZDYWxsZSA1MyAjIDhhIDE2LCBTYW4gQ3Jpc3TDs2JhbCAtIEFudGlvcXVpYSwgQ29sb21iaWE",
         "reference" : "CkQ6AAAAmHilQR8I1lD3lwlQiIqXz9slrI5G7xgL1as_lipuZFJyhw5jartgOxm_4UBGQ20-Z-xs4EhZVA9nuxFZBMXkaRIQVhYYGIhzX6_T23WcDEcHThoUNUx4TYoNrvtlI19nQqGx9Njrf04",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Calle 53 # 8a 16"
            },
            {
               "offset" : 18,
               "value" : "San Cristóbal"
            },
            {
               "offset" : 34,
               "value" : "Antioquia"
            },
            {
               "offset" : 45,
               "value" : "Colombia"
            }
         ],
         "types" : [ "route", "geocode" ]
      },
      {
         "description" : "Calle 53 # 8a 16, El Santuario - Antioquia, Colombia",
         "id" : "8ca61dcd8546efd0a53a8f7803719bf65d0a93cf",
         "matched_substrings" : [
            {
               "length" : 16,
               "offset" : 0
            }
         ],
         "place_id" : "EjRDYWxsZSA1MyAjIDhhIDE2LCBFbCBTYW50dWFyaW8gLSBBbnRpb3F1aWEsIENvbG9tYmlh",
         "reference" : "CkQ4AAAA0WnSgzclmjJ2tpFgVpltvjZ9KKlMeWNSI4bLxT_DZELanBMqHH51DEShY5MdC8QVz6dhKt3dYquYO1S8pgPevRIQUuOLbm-gb-Dv32UjkS78thoUcDFOPgC7lWe_FhewoI3yWhgNn6M",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Calle 53 # 8a 16"
            },
            {
               "offset" : 18,
               "value" : "El Santuario"
            },
            {
               "offset" : 33,
               "value" : "Antioquia"
            },
            {
               "offset" : 44,
               "value" : "Colombia"
            }
         ],
         "types" : [ "route", "geocode" ]
      }
   ],
   "status" : "OK"
}


Pd: el metodo que utilizo para consumir el webservices lo tome del foro en ingles:
https://www.b4x.com/android/forum/threads/google-place.52961/#content. el cual consume un servicio api diferente pero también regresa un json que al parsealo funciona perfecto, lo adjunto a continuacion por si es relevante para efectos comparativos.

B4X:
{
   "html_attributions" : [],
   "results" : [
      {
         "formatted_address" : "16، Giza Governorate, Egipto",
         "geometry" : {
            "location" : {
               "lat" : 30.04679019999999,
               "lng" : 31.0280405
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "8dca086d6abfb3668b2c763f941d2993097be471",
         "name" : "16",
         "place_id" : "ChIJVYIoWqtbWBQRSzcp8GFFMXE",
         "reference" : "CoQBegAAAPcXQrl3OZMtoZhPTAmcKOC0H8cSNGgJKtcHj9HhwgH6BV1CYOPQFE3rh_aAB_viPEJ99PnLUQjVOJR10L3h78GdNp_Jh8YjAQGG2MupiyCQkFoRj5QchnKq0vc0E49YUffNCMRF0Gb6RzsT8-d_FtvOI7mq8ZvG9G_-un_omJ2YEhCbCAVCam4uDoK5B-fDKK69GhSlEr2Rh7GI38jt9O0cANjJteUZwQ",
         "types" : [ "route" ]
      },
      {
         "formatted_address" : "Cl. 53 #31-16, Bucaramanga, Bucaramanga, Santander, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 7.1110958,
               "lng" : -73.11177959999999
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "9dd7a4d7156fa980214877902d1b174f03f93bac",
         "name" : "Cl. 53 #31-16",
         "place_id" : "EjxDbC4gNTMgIzMxLTE2LCBCdWNhcmFtYW5nYSwgQnVjYXJhbWFuZ2EsIFNhbnRhbmRlciwgQ29sb21iaWE",
         "reference" : "CqQBmgAAANUaB-Y-7wAgdZXrskMcb3Z5VQpRFM1XZX8lGIUxFNDbwJOl-LwrWlSs8oAH-hBo1Iti7ZVdb4S_ltVME7dXHt9_uh4qJxMffdnWJrIVjB1vuCElJXwZnTxueA9R8hWJ_HKya9hUPfIiWE0y-bA0FO-UrhPE5qLd6eD0pIYDGi7vNPlmnHBGXB5t_1VNuI_daQ_a1meAz4T6bCcrEqfTMMESEO4zNT58cRDfNKrrHgx0EPoaFHmSzSV8v3GVodQ66lbhGHQfIc7b",
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "Cl. 53 #17b-16, Bucaramanga, Bucaramanga, Santander, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 7.109739299999999,
               "lng" : -73.1192179
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "b963a178dce01bca4ca9435cdf1597e9edd871f2",
         "name" : "Cl. 53 #17b-16",
         "place_id" : "Ej1DbC4gNTMgIzE3Yi0xNiwgQnVjYXJhbWFuZ2EsIEJ1Y2FyYW1hbmdhLCBTYW50YW5kZXIsIENvbG9tYmlh",
         "reference" : "CqQBmwAAAHKSqxKVUH6ryxHPwaYJzVtu2rn_VWMnsfzBfZQIWlgGLH7mmFLijmJ_NZxO6dR7RfzVw5hodmfsX2MHJqxvkhmuJ6lI6zrN6NZrP7ieZo0xn6XRuBCKqhpfENWAj3FO4_F6scEP3GENdKoymFAArulnf6vEcLvfCEMyGrRR_XFq-BmUDCTznpnvEQG2JaNjOT5eQlNai6qDKvnb9PaN7uoSEJt99nmMZkbsfrhIRLd6ajAaFLt2PUqaLSG9oiOYuVKJifI_9izW",
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "Cl. 53 #15-16, Bucaramanga, Bucaramanga, Santander, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 7.1100403,
               "lng" : -73.1184956
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "6cf936670f3c548e4a72654854b934ca801e95ba",
         "name" : "Cl. 53 #15-16",
         "place_id" : "EjxDbC4gNTMgIzE1LTE2LCBCdWNhcmFtYW5nYSwgQnVjYXJhbWFuZ2EsIFNhbnRhbmRlciwgQ29sb21iaWE",
         "reference" : "CqQBmgAAAOoZfFQVV5JL7Tx6HMSk7MMFdfKirrb6VK9g6QGLAxoN8EFxdE5nnGJbHicoa__cu25UKj1s701N7W_mP42ACnyfdDRMgu9Y9Pzz78uFStuiWK8iSJuyqfN_dA5ozlI-UgG9MfItcFsIJIKwBs3W_M2uE0D7mm33kkqQZkSqT8uTB9jQs5bs2tMFmks0Md5RspxsX_hCneBQ_1L3yF9EWYwSEJ2xJK9DvaB6mRzwCWM4yJkaFBxiDBTuAvbZBNDLdUXXTCU3ZC5h",
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "Cl. 53 #34-16, Bucaramanga, Bucaramanga, Santander, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 7.111800499999999,
               "lng" : -73.1094676
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "ca9d7139f4d5eb4028b81104b2d4d2169c410c57",
         "name" : "Cl. 53 #34-16",
         "place_id" : "EjxDbC4gNTMgIzM0LTE2LCBCdWNhcmFtYW5nYSwgQnVjYXJhbWFuZ2EsIFNhbnRhbmRlciwgQ29sb21iaWE",
         "reference" : "CqQBmgAAAEIeyhKOcmxglnD6HWEmTJckNL-HhYNpZYtb224i3Y5qEWakLAXGj27d1gS_lb5zgtz5grQAsQNPRj8CsTEjvw3g-4aFsD2d2bP95apFMX1WIFTxrmvcfQc4Jk3HDIPwNMOa4xcRXVSzahiwQxIfTpv-U1zFZWpN79_s5yJHlZ_dn919fR_gy-EdV0KKK4vWMkMK_ID014XXYdFORPGIFz0SEDA1JZdLkiS3CTwbxzXDJ_0aFAaJT78poCkheJEuH3Xo1qvFuxIh",
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "Cl. 53 #18-16, Bucaramanga, Bucaramanga, Santander, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 7.110359799999999,
               "lng" : -73.1181375
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "3a0bc3ed3e15d39599c106de423fbc52e473b1c3",
         "name" : "Cl. 53 #18-16",
         "place_id" : "EjxDbC4gNTMgIzE4LTE2LCBCdWNhcmFtYW5nYSwgQnVjYXJhbWFuZ2EsIFNhbnRhbmRlciwgQ29sb21iaWE",
         "reference" : "CqQBmgAAAMvaGwjIg2KfuIQeAhttnFlnfLdGv_B4U7w8ifMPqVhBbFHnAmSbsSOuLLgXAL9fy2QDjNpSUVjGnvjL7tXyECiwMrXjaYdoIN4Cp9TQXVraTV-QA8dRNbnXmVAvOaleQpmC8Nd4b8tS-c5AaFIZo1tO0_2jMsl8StVM5MqcCJ0H575gUrGv6-4XzDZwKXw6SwS2fExXSbqb2EteHzmPJAESEOXRf2Q1PfPRpv4UfwQsprUaFE_QvTseakNk7wHapOQabdySvdWQ",
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "Cl. 53 #14-16, Floridablanca, Floridablanca, Santander, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 7.090080599999999,
               "lng" : -73.09120469999999
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "550e990fdf9638cf80e6f171137722339d1497ba",
         "name" : "Cl. 53 #14-16",
         "place_id" : "EkBDbC4gNTMgIzE0LTE2LCBGbG9yaWRhYmxhbmNhLCBGbG9yaWRhYmxhbmNhLCBTYW50YW5kZXIsIENvbG9tYmlh",
         "reference" : "CqQBngAAAPCyEjPNJayrT6WXcrSZ9wrqtWwypT-6cMEYJvag-m5LZVQ-ucx9A4--q7fKP34F35HVejzeAITyGzg6G2SrhG0bl_pzZfP-yRbIscalb4sj7BvXGoz5YpLpw-4-bhb61XxbFziz7bdEJ2Tk4tgVloyWl4omgiB3cpswPgUinLOXdc0m6IEN4zrXYHFns79mTGNdHCJ5c23_DdMJyE146b8SENBjP4PBgCRBFNtfBm3UAgEaFEks5Y989b8NbnwKzrA1O7665oWC",
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "Cl. 53 #50-16, Carolina, Antioquia, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 6.7294342,
               "lng" : -75.28242709999999
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "49f8cbd77841635e86d0171198342324087e9fa3",
         "name" : "Cl. 53 #50-16",
         "place_id" : "EixDbC4gNTMgIzUwLTE2LCBDYXJvbGluYSwgQW50aW9xdWlhLCBDb2xvbWJpYQ",
         "reference" : "CpQBigAAAJ_w75ZCcYd8Kab4M_pzEB0uv1hse7tQfRkd8O-U5J0uIG4uyophE_mCQa8pdFcYr356ASXaHb8XHx9uGIUoyYE9Yd9EV3FdM9n5fXzptndx6Akg33zfAAJGJRmXSYRvFJ1Z6QCAszlCFNeR_JHDVsOSZ_0ySEDPbT-KNxklWf3YbaDUoj34smB3aGDJa9XwhhIQX3d85wtBjhdtlh_HUm2JkRoUpWWe2FnbA1zvOnMxNTIXjP3RBJY",
         "types" : [ "street_address" ]
      }
   ],
   "status" : "OK"
}

Muchisimas gracias por toda la valiosa colaboracion
 

ebqlabs

Active Member
Licensed User
Hola bgsoft.

Perdona la demora para responder, he estado un poco ocupado y apenas estoy retomando mi proyecto, te cuento que encontré justo lo que necesito mediante un servicio web de google places api (predictions) el cual consumo enviándole los parámetros a través de la url de la siguiente manera:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=calle 53 8a 16&key=Api_key

el cual me devuelve el siguiente json que no he podido parsearlo para obtener cada uno de los valores en el array y/o mostrarlo mediante una lista.

B4X:
{
   "predictions" : [
      {
         "description" : "Calle 53 # 8a 16, Medellín - Antioquia, Colombia",
         "id" : "00662c19ffad0a346cecb1cba81379b5dd320779",
         "matched_substrings" : [
            {
               "length" : 16,
               "offset" : 0
            }
         ],
         "place_id" : "EjFDYWxsZSA1MyAjIDhhIDE2LCBNZWRlbGzDrW4gLSBBbnRpb3F1aWEsIENvbG9tYmlh",
         "reference" : "CkQ1AAAApvrE66Y6A3u8IXZI1wwbGbkuPrkR2CCWg7WvOBA4gbEZcPjgzRrtEi36tqhLPy-UWdhnGvYfTfezRSZQXc2fBxIQkL9WJqV0bBQow-wx4TyjXBoUwjfywQkdgoWrT1s6T5lMOs-FgSE",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Calle 53 # 8a 16"
            },
            {
               "offset" : 18,
               "value" : "Medellín"
            },
            {
               "offset" : 29,
               "value" : "Antioquia"
            },
            {
               "offset" : 40,
               "value" : "Colombia"
            }
         ],
         "types" : [ "route", "geocode" ]
      },
      {
         "description" : "Calle 53 # 8a 16, Bello - Antioquia, Colombia",
         "id" : "e09be83c636d1bab95ede28a593b50af5a67c33c",
         "matched_substrings" : [
            {
               "length" : 16,
               "offset" : 0
            }
         ],
         "place_id" : "Ei1DYWxsZSA1MyAjIDhhIDE2LCBCZWxsbyAtIEFudGlvcXVpYSwgQ29sb21iaWE",
         "reference" : "CkQxAAAA57Am617TYbvQ2zmTtEfxyIqsrSRY6VVrcDpaB2E22NfzqHOAJsUVAgXyiJHagcs8t9K0hjCf92fRfkcOFyj2hxIQlFQwSeZFhrNrQyBP8EETABoUgTBM9R6HESMUDB3eIaI5aUG34NM",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Calle 53 # 8a 16"
            },
            {
               "offset" : 18,
               "value" : "Bello"
            },
            {
               "offset" : 26,
               "value" : "Antioquia"
            },
            {
               "offset" : 37,
               "value" : "Colombia"
            }
         ],
         "types" : [ "route", "geocode" ]
      },
      {
         "description" : "Calle 53 # 8a 16, Amagá - Antioquia, Colombia",
         "id" : "baac88a5ef0596a5b15fd7710717c77321f8325b",
         "matched_substrings" : [
            {
               "length" : 16,
               "offset" : 0
            }
         ],
         "place_id" : "Ei5DYWxsZSA1MyAjIDhhIDE2LCBBbWFnw6EgLSBBbnRpb3F1aWEsIENvbG9tYmlh",
         "reference" : "CkQyAAAANXUhylMW7PiEmNah5niqXlsZRI6rGCfyItbeobgGJlVVNgYUXCiglRy5luPdNqE0lzVnqMspS1i0cWtS_NnzyhIQLM1ABFSa3RXByDI_PnBt1xoU3isQ0CdFYsHMOFHZIi8rEDk4gWE",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Calle 53 # 8a 16"
            },
            {
               "offset" : 18,
               "value" : "Amagá"
            },
            {
               "offset" : 26,
               "value" : "Antioquia"
            },
            {
               "offset" : 37,
               "value" : "Colombia"
            }
         ],
         "types" : [ "route", "geocode" ]
      },
      {
         "description" : "Calle 53 # 8a 16, San Cristóbal - Antioquia, Colombia",
         "id" : "0c91b49e0a58cf240a60582dd8d57369481e5361",
         "matched_substrings" : [
            {
               "length" : 16,
               "offset" : 0
            }
         ],
         "place_id" : "EjZDYWxsZSA1MyAjIDhhIDE2LCBTYW4gQ3Jpc3TDs2JhbCAtIEFudGlvcXVpYSwgQ29sb21iaWE",
         "reference" : "CkQ6AAAAmHilQR8I1lD3lwlQiIqXz9slrI5G7xgL1as_lipuZFJyhw5jartgOxm_4UBGQ20-Z-xs4EhZVA9nuxFZBMXkaRIQVhYYGIhzX6_T23WcDEcHThoUNUx4TYoNrvtlI19nQqGx9Njrf04",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Calle 53 # 8a 16"
            },
            {
               "offset" : 18,
               "value" : "San Cristóbal"
            },
            {
               "offset" : 34,
               "value" : "Antioquia"
            },
            {
               "offset" : 45,
               "value" : "Colombia"
            }
         ],
         "types" : [ "route", "geocode" ]
      },
      {
         "description" : "Calle 53 # 8a 16, El Santuario - Antioquia, Colombia",
         "id" : "8ca61dcd8546efd0a53a8f7803719bf65d0a93cf",
         "matched_substrings" : [
            {
               "length" : 16,
               "offset" : 0
            }
         ],
         "place_id" : "EjRDYWxsZSA1MyAjIDhhIDE2LCBFbCBTYW50dWFyaW8gLSBBbnRpb3F1aWEsIENvbG9tYmlh",
         "reference" : "CkQ4AAAA0WnSgzclmjJ2tpFgVpltvjZ9KKlMeWNSI4bLxT_DZELanBMqHH51DEShY5MdC8QVz6dhKt3dYquYO1S8pgPevRIQUuOLbm-gb-Dv32UjkS78thoUcDFOPgC7lWe_FhewoI3yWhgNn6M",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Calle 53 # 8a 16"
            },
            {
               "offset" : 18,
               "value" : "El Santuario"
            },
            {
               "offset" : 33,
               "value" : "Antioquia"
            },
            {
               "offset" : 44,
               "value" : "Colombia"
            }
         ],
         "types" : [ "route", "geocode" ]
      }
   ],
   "status" : "OK"
}


Pd: el metodo que utilizo para consumir el webservices lo tome del foro en ingles:
https://www.b4x.com/android/forum/threads/google-place.52961/#content. el cual consume un servicio api diferente pero también regresa un json que al parsealo funciona perfecto, lo adjunto a continuacion por si es relevante para efectos comparativos.

B4X:
{
   "html_attributions" : [],
   "results" : [
      {
         "formatted_address" : "16، Giza Governorate, Egipto",
         "geometry" : {
            "location" : {
               "lat" : 30.04679019999999,
               "lng" : 31.0280405
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "8dca086d6abfb3668b2c763f941d2993097be471",
         "name" : "16",
         "place_id" : "ChIJVYIoWqtbWBQRSzcp8GFFMXE",
         "reference" : "CoQBegAAAPcXQrl3OZMtoZhPTAmcKOC0H8cSNGgJKtcHj9HhwgH6BV1CYOPQFE3rh_aAB_viPEJ99PnLUQjVOJR10L3h78GdNp_Jh8YjAQGG2MupiyCQkFoRj5QchnKq0vc0E49YUffNCMRF0Gb6RzsT8-d_FtvOI7mq8ZvG9G_-un_omJ2YEhCbCAVCam4uDoK5B-fDKK69GhSlEr2Rh7GI38jt9O0cANjJteUZwQ",
         "types" : [ "route" ]
      },
      {
         "formatted_address" : "Cl. 53 #31-16, Bucaramanga, Bucaramanga, Santander, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 7.1110958,
               "lng" : -73.11177959999999
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "9dd7a4d7156fa980214877902d1b174f03f93bac",
         "name" : "Cl. 53 #31-16",
         "place_id" : "EjxDbC4gNTMgIzMxLTE2LCBCdWNhcmFtYW5nYSwgQnVjYXJhbWFuZ2EsIFNhbnRhbmRlciwgQ29sb21iaWE",
         "reference" : "CqQBmgAAANUaB-Y-7wAgdZXrskMcb3Z5VQpRFM1XZX8lGIUxFNDbwJOl-LwrWlSs8oAH-hBo1Iti7ZVdb4S_ltVME7dXHt9_uh4qJxMffdnWJrIVjB1vuCElJXwZnTxueA9R8hWJ_HKya9hUPfIiWE0y-bA0FO-UrhPE5qLd6eD0pIYDGi7vNPlmnHBGXB5t_1VNuI_daQ_a1meAz4T6bCcrEqfTMMESEO4zNT58cRDfNKrrHgx0EPoaFHmSzSV8v3GVodQ66lbhGHQfIc7b",
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "Cl. 53 #17b-16, Bucaramanga, Bucaramanga, Santander, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 7.109739299999999,
               "lng" : -73.1192179
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "b963a178dce01bca4ca9435cdf1597e9edd871f2",
         "name" : "Cl. 53 #17b-16",
         "place_id" : "Ej1DbC4gNTMgIzE3Yi0xNiwgQnVjYXJhbWFuZ2EsIEJ1Y2FyYW1hbmdhLCBTYW50YW5kZXIsIENvbG9tYmlh",
         "reference" : "CqQBmwAAAHKSqxKVUH6ryxHPwaYJzVtu2rn_VWMnsfzBfZQIWlgGLH7mmFLijmJ_NZxO6dR7RfzVw5hodmfsX2MHJqxvkhmuJ6lI6zrN6NZrP7ieZo0xn6XRuBCKqhpfENWAj3FO4_F6scEP3GENdKoymFAArulnf6vEcLvfCEMyGrRR_XFq-BmUDCTznpnvEQG2JaNjOT5eQlNai6qDKvnb9PaN7uoSEJt99nmMZkbsfrhIRLd6ajAaFLt2PUqaLSG9oiOYuVKJifI_9izW",
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "Cl. 53 #15-16, Bucaramanga, Bucaramanga, Santander, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 7.1100403,
               "lng" : -73.1184956
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "6cf936670f3c548e4a72654854b934ca801e95ba",
         "name" : "Cl. 53 #15-16",
         "place_id" : "EjxDbC4gNTMgIzE1LTE2LCBCdWNhcmFtYW5nYSwgQnVjYXJhbWFuZ2EsIFNhbnRhbmRlciwgQ29sb21iaWE",
         "reference" : "CqQBmgAAAOoZfFQVV5JL7Tx6HMSk7MMFdfKirrb6VK9g6QGLAxoN8EFxdE5nnGJbHicoa__cu25UKj1s701N7W_mP42ACnyfdDRMgu9Y9Pzz78uFStuiWK8iSJuyqfN_dA5ozlI-UgG9MfItcFsIJIKwBs3W_M2uE0D7mm33kkqQZkSqT8uTB9jQs5bs2tMFmks0Md5RspxsX_hCneBQ_1L3yF9EWYwSEJ2xJK9DvaB6mRzwCWM4yJkaFBxiDBTuAvbZBNDLdUXXTCU3ZC5h",
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "Cl. 53 #34-16, Bucaramanga, Bucaramanga, Santander, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 7.111800499999999,
               "lng" : -73.1094676
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "ca9d7139f4d5eb4028b81104b2d4d2169c410c57",
         "name" : "Cl. 53 #34-16",
         "place_id" : "EjxDbC4gNTMgIzM0LTE2LCBCdWNhcmFtYW5nYSwgQnVjYXJhbWFuZ2EsIFNhbnRhbmRlciwgQ29sb21iaWE",
         "reference" : "CqQBmgAAAEIeyhKOcmxglnD6HWEmTJckNL-HhYNpZYtb224i3Y5qEWakLAXGj27d1gS_lb5zgtz5grQAsQNPRj8CsTEjvw3g-4aFsD2d2bP95apFMX1WIFTxrmvcfQc4Jk3HDIPwNMOa4xcRXVSzahiwQxIfTpv-U1zFZWpN79_s5yJHlZ_dn919fR_gy-EdV0KKK4vWMkMK_ID014XXYdFORPGIFz0SEDA1JZdLkiS3CTwbxzXDJ_0aFAaJT78poCkheJEuH3Xo1qvFuxIh",
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "Cl. 53 #18-16, Bucaramanga, Bucaramanga, Santander, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 7.110359799999999,
               "lng" : -73.1181375
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "3a0bc3ed3e15d39599c106de423fbc52e473b1c3",
         "name" : "Cl. 53 #18-16",
         "place_id" : "EjxDbC4gNTMgIzE4LTE2LCBCdWNhcmFtYW5nYSwgQnVjYXJhbWFuZ2EsIFNhbnRhbmRlciwgQ29sb21iaWE",
         "reference" : "CqQBmgAAAMvaGwjIg2KfuIQeAhttnFlnfLdGv_B4U7w8ifMPqVhBbFHnAmSbsSOuLLgXAL9fy2QDjNpSUVjGnvjL7tXyECiwMrXjaYdoIN4Cp9TQXVraTV-QA8dRNbnXmVAvOaleQpmC8Nd4b8tS-c5AaFIZo1tO0_2jMsl8StVM5MqcCJ0H575gUrGv6-4XzDZwKXw6SwS2fExXSbqb2EteHzmPJAESEOXRf2Q1PfPRpv4UfwQsprUaFE_QvTseakNk7wHapOQabdySvdWQ",
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "Cl. 53 #14-16, Floridablanca, Floridablanca, Santander, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 7.090080599999999,
               "lng" : -73.09120469999999
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "550e990fdf9638cf80e6f171137722339d1497ba",
         "name" : "Cl. 53 #14-16",
         "place_id" : "EkBDbC4gNTMgIzE0LTE2LCBGbG9yaWRhYmxhbmNhLCBGbG9yaWRhYmxhbmNhLCBTYW50YW5kZXIsIENvbG9tYmlh",
         "reference" : "CqQBngAAAPCyEjPNJayrT6WXcrSZ9wrqtWwypT-6cMEYJvag-m5LZVQ-ucx9A4--q7fKP34F35HVejzeAITyGzg6G2SrhG0bl_pzZfP-yRbIscalb4sj7BvXGoz5YpLpw-4-bhb61XxbFziz7bdEJ2Tk4tgVloyWl4omgiB3cpswPgUinLOXdc0m6IEN4zrXYHFns79mTGNdHCJ5c23_DdMJyE146b8SENBjP4PBgCRBFNtfBm3UAgEaFEks5Y989b8NbnwKzrA1O7665oWC",
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "Cl. 53 #50-16, Carolina, Antioquia, Colombia",
         "geometry" : {
            "location" : {
               "lat" : 6.7294342,
               "lng" : -75.28242709999999
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "49f8cbd77841635e86d0171198342324087e9fa3",
         "name" : "Cl. 53 #50-16",
         "place_id" : "EixDbC4gNTMgIzUwLTE2LCBDYXJvbGluYSwgQW50aW9xdWlhLCBDb2xvbWJpYQ",
         "reference" : "CpQBigAAAJ_w75ZCcYd8Kab4M_pzEB0uv1hse7tQfRkd8O-U5J0uIG4uyophE_mCQa8pdFcYr356ASXaHb8XHx9uGIUoyYE9Yd9EV3FdM9n5fXzptndx6Akg33zfAAJGJRmXSYRvFJ1Z6QCAszlCFNeR_JHDVsOSZ_0ySEDPbT-KNxklWf3YbaDUoj34smB3aGDJa9XwhhIQX3d85wtBjhdtlh_HUm2JkRoUpWWe2FnbA1zvOnMxNTIXjP3RBJY",
         "types" : [ "street_address" ]
      }
   ],
   "status" : "OK"
}

Muchisimas gracias por toda la valiosa colaboracion


Amigo,ando en busca de lo mismo. No tienes por ahí un ejemplo en proyecto ? saludos
 

henry montoya

Member
Licensed User
Hola ebqlabs.

Por supuesto, te adjunto el proyecto desde el cual hice algunas modificaciones, no olvides que debes agregar tu api_key y poner el nombre del paquete que agregaste durante la creación de la misma.

El proyecto de ejemplo esta basado en el consumo del servicio web auto completado de sitios, el cuan funciona a la perfección si buscas establecimientos o lugares específicos enviando a través de la url las palabras claves de búsqueda separadas por el signo + y agregando al final tu Api_key.

https://maps.googleapis.com/maps/api/place/textsearch/json?query=Almacen Exito&key=ApiKey

sin embargo no funciona para nada bien con direcciones que es lo que necesitamos, para cuyo propósito el web services que debes ejecutar es el siguiente:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=calle 53 8a 16&key=ApiKey

Este te regresa un json con las predicciones de cada dirección exactamente como lo hace google maps, desafortunadamente hasta ahora no he podido parsear la respuesta json.

Cabe resaltar que esta consulta es solo para obtener una predicción de todas las direcciones posible que coinciden con tu búsqueda mas no se obtiene la ubicación geográfica como latitud y longitud, mas bien dentro de cada predicción regresa una "referencia" la cual enviada a través de otro servicio web obtenemos información detallada de su ubicación, como ciudad, código postal, latitud, longitud entre otras, el servicio es el siguiente:

https://maps.googleapis.com/maps/api/place/details/json?reference=CkQxxxxxxxxxxxxxx&key=ApiKey.

prueba en tu navegador cada uno de estos servicios agregando tu api_key para que mires los resultado y te familiarices con las respuestas, y si logras parsear el json te agradezco que puedas compartir como lo hiciste que yo haré lo mismo en cuanto pueda lograrlo.

Saludos.
 

Attachments

  • Google.Places.zip
    94.9 KB · Views: 194

ebqlabs

Active Member
Licensed User
Hola ebqlabs.

Por supuesto, te adjunto el proyecto desde el cual hice algunas modificaciones, no olvides que debes agregar tu api_key y poner el nombre del paquete que agregaste durante la creación de la misma.

El proyecto de ejemplo esta basado en el consumo del servicio web auto completado de sitios, el cuan funciona a la perfección si buscas establecimientos o lugares específicos enviando a través de la url las palabras claves de búsqueda separadas por el signo + y agregando al final tu Api_key.

https://maps.googleapis.com/maps/api/place/textsearch/json?query=Almacen Exito&key=ApiKey

sin embargo no funciona para nada bien con direcciones que es lo que necesitamos, para cuyo propósito el web services que debes ejecutar es el siguiente:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=calle 53 8a 16&key=ApiKey

Este te regresa un json con las predicciones de cada dirección exactamente como lo hace google maps, desafortunadamente hasta ahora no he podido parsear la respuesta json.

Cabe resaltar que esta consulta es solo para obtener una predicción de todas las direcciones posible que coinciden con tu búsqueda mas no se obtiene la ubicación geográfica como latitud y longitud, mas bien dentro de cada predicción regresa una "referencia" la cual enviada a través de otro servicio web obtenemos información detallada de su ubicación, como ciudad, código postal, latitud, longitud entre otras, el servicio es el siguiente:

https://maps.googleapis.com/maps/api/place/details/json?reference=CkQxxxxxxxxxxxxxx&key=ApiKey.

prueba en tu navegador cada uno de estos servicios agregando tu api_key para que mires los resultado y te familiarices con las respuestas, y si logras parsear el json te agradezco que puedas compartir como lo hiciste que yo haré lo mismo en cuanto pueda lograrlo.

Saludos.


Hola, el nombre del paquete esta en:

Project -->Build Configuration --> Package

y en

Sub Process_Globals
Dim ApiKey As String = "clave"
End Sub

tengo mi clave y todo, reemplazo los campos y no me arroja nada.

faltara algo ? saludos, gracias.
 

henry montoya

Member
Licensed User
En realidad tu clave tiene funcionalidad una vez hallas habilitado la api, sin embargo si mal no recuerdo para que la solicitud al servicio sea valida debes seleccionar al momento de crear tu clave "clave de servidor" y no "clave de Android", si tu caso es el ultimo y tienes bien asociado tu nombre de paquete y tu api_key solicita una vez mas tu clave como "Clave de Servidor", lamento no haberlo mencionado antes, se me paso por alto.

Saludos.
 

ebqlabs

Active Member
Licensed User
si, yo había creado "clave de Android"

la de servidor, tienes el links de la pagina para poder realizar lo, saludos. gracias
 

ebqlabs

Active Member
Licensed User
Cree la clave servidor y me dio la clave
pero en mi url me dice:

{
"error_message" : "This API project is not authorized to use this API. Please ensure that this API is activated in the APIs Console: Learn more: https://code.google.com/apis/console",
"html_attributions" : [],
"results" : [],
"status" : "REQUEST_DENIED"
}

es decir, que en el móvil no funciono. Como activo la API ?

Saludos, gracias.
 

henry montoya

Member
Licensed User
Bueno al menos ya estas obteniendo respuesta, asi sea un error, lo que te falta es habilitar la api. te vas a la Google Developers Console y despliegas el menu superior izquierdo.

upload_2015-12-3_14-53-29.png


seleccionas Administrador de las API

upload_2015-12-3_14-55-46.png



ve a las apis de google maps y haz clic en la etiqueta Google Places Api Web Service, si no la vez despliega el resto con la opción "Mas" abajo de la lista de apis.

upload_2015-12-3_14-58-34.png


Haz clic en Habilitar API y listo, la aplicación debería funcionar

upload_2015-12-3_15-2-29.png



Saludos.
 

ebqlabs

Active Member
Licensed User
error mio . cree un nuevo projecto y una nueva clave y funciono

PERFECTO FUNCIONA, AHORA ADORNAR EL CÓDIGO MUCHAS GRACIAS
 

ebqlabs

Active Member
Licensed User
Hola ebqlabs.

Por supuesto, te adjunto el proyecto desde el cual hice algunas modificaciones, no olvides que debes agregar tu api_key y poner el nombre del paquete que agregaste durante la creación de la misma.

El proyecto de ejemplo esta basado en el consumo del servicio web auto completado de sitios, el cuan funciona a la perfección si buscas establecimientos o lugares específicos enviando a través de la url las palabras claves de búsqueda separadas por el signo + y agregando al final tu Api_key.

https://maps.googleapis.com/maps/api/place/textsearch/json?query=Almacen Exito&key=ApiKey

sin embargo no funciona para nada bien con direcciones que es lo que necesitamos, para cuyo propósito el web services que debes ejecutar es el siguiente:

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=calle 53 8a 16&key=ApiKey

Este te regresa un json con las predicciones de cada dirección exactamente como lo hace google maps, desafortunadamente hasta ahora no he podido parsear la respuesta json.

Cabe resaltar que esta consulta es solo para obtener una predicción de todas las direcciones posible que coinciden con tu búsqueda mas no se obtiene la ubicación geográfica como latitud y longitud, mas bien dentro de cada predicción regresa una "referencia" la cual enviada a través de otro servicio web obtenemos información detallada de su ubicación, como ciudad, código postal, latitud, longitud entre otras, el servicio es el siguiente:

https://maps.googleapis.com/maps/api/place/details/json?reference=CkQxxxxxxxxxxxxxx&key=ApiKey.

prueba en tu navegador cada uno de estos servicios agregando tu api_key para que mires los resultado y te familiarices con las respuestas, y si logras parsear el json te agradezco que puedas compartir como lo hiciste que yo haré lo mismo en cuanto pueda lograrlo.

Saludos.


Solucionado con la dirección de
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=calle 53 8a 16&key=ApiKey


SOLUCION:

en

B4X:
Sub JsonTree(JobString As String)

PlaceList.Initialize
    Dim parser As JSONParser
    parser.Initialize(JobString)
    Dim root As Map = parser.NextObject
  
    Dim results As List = root.Get("predictions") 'CAMBIAS ESTA LINEA,
end sub


Y SI TE DAS CUENTAS EN LA URL, TE VAS TRAYENDO LOS CAMPOS.
EJEMPLO
description



LO MALO SI EN ESA URL QUE ES MAS EXACTA, NO TRAE LA LONGITUD Y LATITUD.

SALUDOS
 
Top