Implementar Google Maps en aplicación Android

Desarrollar aplicación Android con Google Maps

La forma más ágil, cómoda y sencilla de implementar Google Maps en una aplicación Android es utilizando la propia app de Google Maps mediante un Intent. Si no es un requisito que Google Maps se explote desde tu aplicación, olvídate de tener que desarrollar todas las funcionalidades, como calcular rutas, capas de datos, etc., con sólo pasar un par de parámetros podrás invocar un activity nuevo de Maps y aprovechar todo su potencial.

Tal y como indican en la documentación oficial de Android, el Intent de Google Maps es un ACTION_VIEW al que se le puede pasar una uri con parámetros, que fundamentalmente son de tres tipos:

Desarrollar aplicación Android con Google Maps

  • Ubicación: ya sean longitud y latitud, o bien la dirección tal cual: calle Gran Vía 13 o tipo de negocio “pizzería en Madrid”
  • Funcionalidad: uno de los aspectos más útiles, y es que además de centrar el mapa en la ubicación indicada, puedes hacer que muestre un label con un literal que puedes especificar para ofrecer más información. Este label también incluye un botón para establecer una ruta guiada por GPS.
  • Visualización: puedes especificar el zoom mediante z=[2-23], donde 23 es el más cercano.

La uri puede tener la siguiente estructrua:

  • geo:latitud,longitud
  • geo:latitud,longitud?z=zoom
  • geo:0,0?q=direccion+especifica
  • geo:0,0?q=negocio+ciudad
  • geo:0,0?q= latitud,longitud (label+mas+informacion)

Un código de ejemplo para invocar el Intent de Google Maps para Android podría ser el siguiente:

String geo = “geo:0,0?q=22222 ,66666(Ubicación de Ejemplo)&z=5”;

Intent i = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(geo));

startActivity(i);

Si además quieres especificar que siempre se utilice la aplicación de Google Maps, en vez de que salga el popup para seleccionar qué app quieres usar en caso de que tengas varias de mapas, puedes meter esta línea antes del startActivity:

i.setClassName(“com.google.android.apps.maps”, “com.google.android.maps.MapsActivity”);

 

Sin Comentarios

SQL Server Parameter Sniffing: error timeout con DataAdapter.Fill en .NET

SQL Server Parameter Sniffing: error timeout con DataAdapter.Fill en .NET

Si estás invocando un procedimiento almacenado en SQL Server al que le pasas uno o varios parámetros y observas que el tiempo de ejecución es mucho mayor que si ejecutas manualmente la query, probablemente estés ante un caso de Parameter Sniffing. Este tipo de problema sucede cuando el gestor de la BD intenta reutilizar un plan de ejecución anterior recuperándolo de la caché aplicando  los nuevos valores de los parámetros recibidos.

El plan de ejecución de un procedimiento almacenado en SQL Server no se genera al compilarlo, si no que se crea la primera vez que se ejecuta el SP y después se reutiliza en las sucesivas llamadas. Esto puede dar lugar a ejecuciones con una demora de tiempo muy elevada, ya que puede ser que el plan de ejecución de la primera consulta no sea tan óptimo para otras.

La forma de solucionarlo es utilizar variables locales en lugar de los propios parámetros en la query del procedimiento almacenado.  Creamos una nueva variable del mismo tipo y tamaño que cada parámetro, y le asignamos su valor. Por ejemplo:

CREATE PROCEDURE SP_N4GASH

@fecha Date,

@categoria int

AS

DECLARE @nuevaFecha Date

DECLARE @nuevaCategoria int

SET @nuevaFecha =@fecha

SET @nuevaCategoria=@categoria

SELECT […]  FROM […]

WHERE aud_fecha = @nuevaFecha

AND catID = @nuevaCategoria

GO

En mi caso me apareció este error desde una aplicación C# desde la que invocando a un procedimiento almacenado y metiéndolo en un DataTable mediante DataAdaptar.Fill me arrojaba un error de TimeOut. La solución rápida y mala de este error desde la aplicación web es asignar varios segundos al parámetro timeout del SQLCommand, y aunque esto evita que salte el error y se detenga el proceso, no soluciona el problema de la demora de tiempo, donde a veces se presentan diferencias de más de una hora respecto a la solución desde T-SQL.

Sin Comentarios

Flash Builder 4.6 – Error Java Heap Space

Flash Builder 4.6 – Error Java Heap Space

El error Java Heap Space puede aparecer mientras trabajamos con Flash Builder 4.6 al intentar compilar, limpiar o generar un proyecto. Normalmente ocurre cuando el tamaño de la película flash a generar es muy elevado, o cuando el conjunto de ficheros o archivos que utiliza pesan mucho (imágenes, XML, etc).

Para solucionarlo podemos seguir la solución publicada en el FAQ de Adobe, que consiste en ampliar la memoria virtual de Java. Para ello tenemos que seguir los siguientes pasos:

  • Cerramos Flash Builder ó Eclipse en caso de que estemos usando su plugin.
  • Localizamos el fichero flashbuilder.ini ó eclipse.ini y lo editamos.
  • Modificamos los valores XMS y XMX del parámetro –vmargs. Esos valores indican la cantidad de megas (M) ó kilobytes (K) disponibles para la memoria virtual de java. Estos valores deben ser siempre múltiplos de 1024 kb.
    • Xms256m: Memoria inicial disponible. Lo cambiamos por Xms1024m.
    • Xmx512m: Memoria máxima disponible. Lo cambiamos por Xmx2048m.
  • Volvemos a abrir Flash Builder 4.6 ó Eclipse y debería de funcionar correctamente.

La cantidad de memoria que deseemos dedicar dependerá del equipo donde estemos ejecutando la aplicación.

Sin Comentarios

Flash Builder 4.6 “Workspace in use or cannot be created, chose a different one.”

Flash Builder 4.6 'Workspace in use or cannot be created, chose a different one.'

Este error aparece normalmente cuando cerramos incorrectamente el IDE Flash Builder, por ejemplo, cancelando el proceso desde el Administrador de Tareas de Windows o al producirse algún tipo de error. Hay varios métodos para solucionarlo, en mi caso con la versión 4.6 en una ocasión me funcionó la 1ª y en otra la 2ª:

1. Borrar el fichero .lock ubicado en el directorio .Metadata del workspace de Flash Builder 4.6. Es posible que no os deje borrarlo porque estará siendo utilizado por el proceso de FB, por lo que previamente tenéis que cancelar el proceso y luego podréis borrarlo.

Workspace\.metadata\.lock

2. Borrar el fichero .snap ubicado en:

Workspace\ .metadata\.plugins\org.eclipse.core.resources\.snap

3. Editar el fichero de configuración de preferencias de Flash Builder 4.6 y donde pone RECENT WORKSPACE borramos el que nos está dando error.

UsuarioX/Documents/Adobe Flash Builder 4.5/cascaded/308971/configuration/
.settings/org.eclipse.ui.ide.prefs

Sin Comentarios

Weareables ¿tendrá éxito la nueva tendencia tecnológica?

weareable

Seguro que lo has oído en la televisión, la radio, lo has leído en un blog o en algún artículo de divulgación de una revista semanal. Los weareables. Llevan ya tiempo conviviendo con nosotros, aunque estas Navidades seguramente tomen buen impulso y den un salto como el que ya dieron, por ejemplo, las tablets o los smartphones en su día. Las Google Glasses son un ejemplo perfecto de esta nueva tendencia. Si eres adicto al running seguro que en tu equipo diario has incorporado un pulsómetro – ya sea a modo de reloj o una original pulsera -, sin saberlo, ya llevas tiempo con un weareable en tu vestuario. La inminente salida de los Samsung Galaxy Gear el próximo mes y el muy probable contraataque de su competencia, el iWatch, premiten preveer cuál será el regalo tecnológico del año.

Por weareable se entiende cualquier dispositivo electrónico que podemos llevar encima de nuestro cuerpo y que interactúa con nosotros y otros aparatos: relojes smtartwatchs, zapatillas deportivas con GPS incorporado, pulseras que monitorean nuestro estado de salud, etc. Muchos de estos nuevos aparatos están ideados para crear sinergias con los smartphones que ya se han convertido en elementos clave de nuestro día a día. Siguiendo el ejemplo de los pulsómetros, éstos son capaces de sincronizarse en la nube y pasar de forma automática nuestra frecuencia cardiaca, velocidad, ritmo medio, etc. a nuestro smartphone, desde el que podríamos explotar de cientos de formas distintas esta información.

Recientemente se ha anunciado que el smartwatch de Samsung: Galaxy Gear será un dispositivo autónomo capaz de realizar llamadas telefónicas sin estar conectado a un smartphone, es decir, podríamos llevar el teléfono en nuestra muñeca cómodamente ocupando apenas 3 cm cuadrados. Es posible que en este punto podamos plantear un dilema ¿los smartwatchs podrán suplantar a los smartphones? ¿son compatibles u ocupan el mismo rol? ¿sólo los utilizaríamos para realizar llamadas? desde hace tiempo la tendencia son pantallas más grandes, la navegación desde terminales móviles se ha multiplicado exponencialmente y el consumo multimedia está en alza  ¿qué ocurrá con los smartwatchs? ¿navegaremos por internet con ellos? ¿veremos series y películas en una pantalla diminuta? delegado el uso de smartphones ¿surgiría un nuevo producto para el consumo de internet y contenido multimedia que complemente al smartwatch? ¿ya existe: tablets? Llegados a este punto, podríamos decir sin complejos que antes vivíamos pegados a los teléfonos y ahora vivimos pegados a los weareables.

¿Y tú? ¿cuantos weareables tienes ya en tu armario? yo de momento sólo uno, pero es que todavía no ha llegado Diciembre 😉

1

2

Sin Comentarios

Foursquare para empresas (marketing de geo-posicionamiento)

¿No lo conoces aún? ¿seguro? Foursquare es una red social que viene pegando fuerte desde hace meses y que poco a poco se ha ido convirtiendo en una herramienta o plataforma esencial para la promoción de empresas y negocios locales. Enfocado principalmente a la restauración (bares, pubs, restaurantes, tiendas de cupcakes, etc), en realidad puede ser útil para cualquier sector o negocio que se dedica a la venta de productos y/o servicios. A continuación os mostramos una excelente presentación donde se explica qué es Foursquare, qué potencial se le puede sacar como usuario aprovechando el juego de los badges y los check-ins, y quizás lo más importante, cómo explotarlo siendo una empresa: gestión de campañas, fidelización de usuarios mediante badges y alcaldes o Majors, nuevas técnicas o canales de promoción, etc. Para comprobar la eficacia del marketing online en Foursquare, podéis ver estos cinco casos de éxito.

Sin Comentarios