1.0.22 • Published 6 months ago

parque-del-recuerdo-google-maps-integration v1.0.22

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

Google Maps Parque del Recuerdo

Descripción

Esta librería muestra la ubicación de una sepultura del Parque del Recuerdo, y muestra el camino para llegar a esta. Este puede ser para el Parque Padre Alberto Hurtado, Parque Cordillera o Parque Américo Vespucio.

Este proyecto se desarrolla sobre la Google Maps Javascript API, la cual requiere un API Key para su funcionamiento. La librería cuenta con el centro geométrico de cada sector de los 3 parques, lo que permite llegar a una posición aproximada en caso que no se cuente con las coordenadas geográficas la sepultura.

A continuación se muestra el setup del proyecto, información de las funciones exportadas con ejemplos y sus tipos. Cabe destacar que los ejemplos están pensados para cualquier framework web, como React o Angular, por lo que no se utiliza una sintaxis específica.

Setup

La librería se puede instalar desde NPM:

npm i --save parque-del-recuerdo-google-maps-integration

Al estar desarrollada sobre Google Maps JS PI, se requiere un API Key con permisos para utilizar esta aplicación. Esto se hace desde Google Maps Platform en la consola de Google Cloud. Se deben seguir los siguientes pasos:

  1. Crear proyecto
  2. Habilitar API Google Maps
  3. Crear API Key
  4. Restringir API Key

Funciones

initMap

Descripción

Función para inicializar un mapa de la API de Javascript de Google Maps, con un marcador en la sepultura de la persona consultada. Este inyecta el mapa en un contenedor provisto por el cliente.

El mapa utilizará todo el espacio disponible dentro del contenerdor.

Parámetros

PropiedadDescripciónTypeOpcional
positionLatitud y longitud de la sepulturaLatLngtrue
apiKeyLlave de la API de google mapsstringfalse
containerIdid del contenedor HTML en el que se incrustará el mapa. Se recomienda utilizar un <div> vacíostringfalse
parkCodeCódigo del parque, los valores esperados son: - PPH (Parque Padre Alberto Hurtado) - PCO (Parque Cordillera) - PAV (Parque Américo Vespucio)ParkCodefalse
sectorCodeCódigo del sector del parque, utilizado en caso de que no existan coordenadas geograficas para la sepulturastringfalse
namenombre en la sepulturastringtrue

Ejemplo

Inicialización del mapa para una sepultura en particular.

En la inicialización de la componente:

import { initMap } from 'parque-del-recuerdo-google-maps-integration';

const position = {
    latitude: -33.38743058,
    longitude: -70.63220296
};

const apiKey = 'placeholder';
const divId = 'google-maps';
const parkCode = 'PAV';
const sectorCode = 'C4';
const name = 'JOHN DOE';
const rut = '11.111.111-1';

initMap({position, apiKey, divId, parkCode, sectorCode, name, rut});

En el html:

<div style="width: 50vw; height:50vh;">
    <div style="width: 100%; height: 100%;" id="google-maps"></div>
</div>

El primer contenedor tiene el largo y ancho del mapa, el cual puede ser fijo o relativo. Es importante agregar el 100% en el height y width del div de google maps.

Imagen de ejemplo

GenerateDeepLink

Descripción

Función que genera un deeplink de Google Maps con destino a la sepultura. Al ser abierto, redirige al usuario a Google Maps en un computador, y la aplicación de Google Maps en un dispositivo móvil. En ambos casos se indica la ruta más corta a la sepultura, a pie.

Parámetros

Los parámetros de la función son los siguientes:

PropiedadDescripcionTypeOpcional
destinationLatitud y longitud del destinoLatLngfalse
waypointsParámetro opcional. Lista de latitudes y longitudes por los cuales la ruta debe pasar.LatLng[]true
parkCodeCódigo del parque, los valores esperados son: - PPH (Parque Padre Alberto Hurtado) - PCO (Parque Cordillera) - PAV (Parque Américo Vespucio)ParkCodefalse
sectorCodeCódigo del sector del parque, utilizado en caso de que no existan coordenadas geograficas para la sepulturastringfalse

Ejemplo

Este ejemplo presenta un botón que, al apretarlo, redirige a Google Maps con una ruta a la sepultura.

En el componente, definir la siguiente función

import { generateDeepLink } from 'parque-del-recuerdo-google-maps-integration';

const handleOnClick = () => {
    const destination = {
        latitude: -33.38743058,
        longitude: -70.63220296
    }
    const parkCode = 'PAV';
    const sectorCode = 'C4';
    url = generateDeepLink({destination, parkCode, sectorCode})
    window.open(url, '_blank'); 
}

El el código HTML:

<button onclick="handleOnClick()">Open Link</button>

Al apretar el botón, se abrirá una página como la siguiente en Web:

Web

O como la siguiente en un dispositivo móvil:

Tipos

Modelo:

type LatLng = {
    latitude: number;
    longitude: number;
};
type ParkCodes = 'PPH' | 'PAV' | 'PCO';
type SectorCenters = {
    [key: string]: LatLng;
};
type Park = {
    name: string;
    sectorsCenters: SectorCenters;
    bounds: LatLng[];
    origin: LatLng;
};

Funciones:

interface GenerateDeepLinkArgs {
    destination?: LatLng;
    waypoints?: LatLng[];
    parkCode: ParkCodes;
    sectorCode: string;
}
declare const generateDeepLink: ({ destination, waypoints, parkCode, sectorCode }: GenerateDeepLinkArgs) => string;
interface InitMapArgs {
    position?: LatLng;
    apiKey: string;
    divId: string;
    parkCode: ParkCodes;
    sectorCode: string;
    name: string;
}
export declare const initMap: (args: InitMapArgs) => Promise<void>;

License

See MIT License

1.0.19

7 months ago

1.0.18

7 months ago

1.0.17

7 months ago

1.0.16

7 months ago

1.0.9

7 months ago

1.0.8

7 months ago

1.0.22

6 months ago

1.0.21

6 months ago

1.0.20

6 months ago

1.0.11

7 months ago

1.0.10

7 months ago

1.0.15

7 months ago

1.0.14

7 months ago

1.0.13

7 months ago

1.0.12

7 months ago

1.0.7

8 months ago

1.0.6

8 months ago

1.0.5

8 months ago

1.0.4

8 months ago

1.0.3

8 months ago

1.0.2

8 months ago

1.0.1

8 months ago

1.0.0

8 months ago