Política de Privacidad

1. Introducción

Esta Política de Privacidad describe cómo recopilamos, usamos y protegemos su información personal cuando utiliza nuestro chatbot, que interactúa con la API de IA de Gemini, y almacena sus preguntas en nuestra base de datos.

2. Información Recopilada

Al utilizar nuestro chatbot, recopilamos los siguientes tipos de información:

  • Información de Conversación: Todos los mensajes que usted envía y recibe a través del chatbot.
  • Datos de Identificación: Podemos recopilar datos como la dirección IP y la información de ubicación geográfica.

3. Uso de la Información

La información recopilada se utiliza para los siguientes fines:

  • Interacción con la API de IA: Sus mensajes son enviados a la API de Gemini para generar respuestas apropiadas.
  • Almacenamiento de Preguntas: Sus preguntas se almacenan en nuestra base de datos con fines de análisis y mejora del servicio.

4. Compartición de Información

No compartimos su información personal con terceros, excepto en los siguientes casos:

  • Proveedores de Servicios: Podemos compartir información con proveedores que nos ayudan a operar nuestro servicio, como la API de Gemini.
  • Cumplimiento Legal: Podemos divulgar información para cumplir con obligaciones legales o responder a procesos legales.

5. Seguridad de la Información

Implementamos medidas de seguridad adecuadas para proteger su información contra el acceso, la alteración, la divulgación o la destrucción no autorizados. Estas medidas incluyen:

  • Cifrado: Uso de cifrado para proteger los datos en tránsito.
  • Acceso Restringido: El acceso a la información está limitado a empleados y socios que necesitan dicha información para operar nuestro servicio.

6. Sus Derechos

Usted tiene derecho a:

  • Acceder y Corregir: Solicitar acceso a su información personal y corregir datos incorrectos.
  • Eliminar Datos: Solicitar la eliminación de su información personal, sujeto a ciertas condiciones.
  • Retirar el Consentimiento: Retirar su consentimiento para el procesamiento de su información personal.

7. Cambios en la Política de Privacidad

Nos reservamos el derecho de actualizar esta Política de Privacidad en cualquier momento. Notificaremos cualquier cambio significativo a través de nuestro sitio web u otros medios de comunicación apropiados.

8. Contacto

Si tiene alguna pregunta sobre esta Política de Privacidad, contáctenos a través del correo electrónico [email protected]

9. Consentimiento

Al utilizar nuestro servicio, usted acepta la recopilación y el uso de su información según lo descrito en esta Política de Privacidad.

Esta Política de Privacidad fue elaborada para garantizar que su información personal sea tratada con seguridad y respeto. Agradecemos su confianza y estamos comprometidos a proteger su privacidad.

Map Display

Recursos

Marcadores

Un marcador es simplemente un punto resaltado en el mapa, que puede utilizarse para mostrar puntos de interés (POI) o simplemente paradas en una ruta, por ejemplo.

Para crear un marcador simple, basta con utilizar el método marcador, pasando un objeto que represente su coordenada:

maplink.marker({
    latitude: -23.986178,
    longitude: -46.308402
});

El resultado del código anterior será similar al de la imagen:

texto alternativo

Si desea asociar el marcador con un globo de texto que contenga su descripción, puede pasar un objeto de configuración que contenga la propiedad popup como segundo argumento. Esta propiedad acepta una string, que puede contener formato html:

maplink.marker({
    latitude: -23.986437,
    longitude: -46.308303
}, {
    popup: "<strong>Estátua do Pescador</strong>"
});

El resultado del código anterior será similar al de la imagen:

Icono personalizado

También puedes definir iconos personalizados para tus marcadores, en lugar de utilizar el icono estándar de Maplink. Para ello, primero debe crear un objeto icono utilizando el método icono. Recibe tres parámetros, por orden:

  • String obligatorio con la ruta a la imagen del icono, cuyo formato debe ser preferiblemente png;
  • String opcional con la ruta a la imagen de sombra que proyectará el icono;
  • Objeto opcional con propiedades de tamaño (size) y anclaje (anchor) para el icono, su sombra y los globos de texto.

Un ejemplo de definición completa de un icono con su sombra sería el siguiente:

const myIcon = maplink.icon(
    "apontador-icon.png",
    "apontador-icon-shadow.png",
    {
        iconSize: [34, 43],
        shadowSize: [12, 20],
        iconAnchor: [20, 42],
        shadowAnchor: [5, 10],
        popupAnchor: [-3, -32]
    }
);

Como la sombra es un atributo opcional de los iconos, puede omitirse. El ejemplo anterior sin su sombra tendría este aspecto:

const myIcon = maplink.icon(
    "apontador-icon.png",
    null,
    {
        iconSize: [34, 43],
        iconAnchor: [20, 42],
        popupAnchor: [-3, -32]
    }
);

Una vez creado el icono, basta con pasarlo a la propiedad icon del objeto de configuración del método marker.

maplink.marker({
    latitude: -23.986437,
    longitude: -46.308303
}, {
    icon: myIcon
});

El método icon es una envoltura de la función de Leaflet del mismo nombre, así que para saber más sobre configuraciones de iconos personalizadas, visite su documentación en Leaflet – a JavaScript library.

Los iconos creados directamente a través de Leaflet pueden pasarse normalmente al método marker.

Líneas

Se pueden trazar líneas en el mapa, normalmente para ilustrar rutas entre dos o más puntos. El método line permite crear fácilmente una línea pasando una matriz de objetos de coordenadas como argumento:

const route = [
    {
        "latitude": -23.983273,
        "longitude": -46.299793
    },
    {
        "latitude": -23.982123,
        "longitude": -46.299857
    },
    {
        "latitude": -23.982008,
        "longitude": -46.299494
    }
];
maplink.line(route);

El resultado del código anterior debería ser similar al de la imagen:

Si no se introduce ningún parámetro, se utilizarán algunos valores por defecto, como el color de la línea. El segundo argumento del método acepta un objeto de configuración, que puede contener las propiedades:

  • color – String, utilizada para definir el color de la línea. Acepta cualquier propiedad CSS válida para colores, como el nombre del color o el código hexadecimal. Si no se especifica, se utilizará un color aleatorio.
  • fitBounds – Valor booleano. Define si la línea debe estar enmarcada en la representación inicial del mapa. El valor predeterminado es false.

El ejemplo anterior de una línea con su color definido tendría este aspecto:

maplink.line(route, {
    color: "#ffa500"
});

Líneas interactivas

La Map Display API le permite crear líneas interactivas, que permiten que el usuario agregue nuevos puntos al mapa. Puede encontrar un ejemplo en el enlace: https://maps.maplink.global/index.html?apiKey=SUA_API_KEY

Ejemplo de línea interactiva

Para utilizar esta función es necesario utilizar el método draggableLine. El primer argumento debe ser un array de objetos de coordenadas, como en el siguiente ejemplo:

const route = [
    {
        "latitude": -23.983273,
        "longitude": -46.299793
    },
    {
        "latitude": -23.982123,
        "longitude": -46.299857
    },
    {
        "latitude": -23.982008,
        "longitude": -46.299494
    }
];
maplink.draggableLine(route);

El segundo argumento del método acepta un objeto de configuración. Al igual que con el método line, cuando no se proporciona este argumento, se utilizarán algunos valores predeterminados, como el color de la línea. El objeto de configuración puede contener las siguientes propiedades:

  • color – String, utilizada para definir el color de la línea. Acepta cualquier propiedad CSS válida para colores, como el nombre del color o el código hexadecimal. Si no se especifica, se utilizará un color aleatorio.
  • fitBounds – Valor booleano. Define si la línea debe estar enmarcada en la representación inicial del mapa. El valor predeterminado es false.
  • snapToClosestPoint – Objeto opcional con opciones que definen cuál debe ser el comportamiento cuando el usuario coloca la línea interactiva en el mapa. Si se informa, al añadir un nuevo punto se dirigirá a la carretera más cercana al soltar el mouse.
    • ignoreTypeOfPath – Array con elementos de la carretera que deben ignorarse al reposicionar. Los valores posibles son: ["abandoned", "driveway", "parking_aisle", "path", "rail", "service", "track", "trackminor_construction"]
    • debug – Valor booleano. Si es true, se resaltarán los caminos donde es posible arrastrar el punto.
    • threshold – Entero con el valor del radio hasta el que se puede mover el punto.
 let line2 = maplink.draggableLine(route, {
           color: "#FF1E00",
           fitBounds: true,
           snapToClosestPoint: {
               ignoreTypeOfPath: [
                   "abandoned",
                   "driveway",
                   "parking_aisle",
                   "path",
                   "rail",
                   "service",
                   "track",
                   "trackminor_construction",
               ],
           },
      });

Al agregar una línea interactiva, hay dos eventos disponibles: addPoint para cuando se agrega un nuevo punto y removePoint para cuando se elimina.

De esta forma, se puede realizar una nueva solicitud a la Trip API siempre que haya un cambio, por ejemplo.

line.on("addedPoint", (point) => {
     console.log(`[Line 1] - Added `, point);
});

line.on("removedPoint", (point) => {
     console.log(`[Line 1] - Removed `, point);
});