npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

parque-del-recuerdo-google-maps-integration

v1.0.22

Published

package to integrate google maps to Parque del Recuerdo app

Downloads

26

Readme

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

| Propiedad | Descripción | Type | Opcional | |---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|----------| | position | Latitud y longitud de la sepultura | LatLng | true | | apiKey | Llave de la API de google maps | string | false | | containerId | id del contenedor HTML en el que se incrustará el mapa. Se recomienda utilizar un <div> vacío | string | false | | parkCode | Código del parque, los valores esperados son: - PPH (Parque Padre Alberto Hurtado) - PCO (Parque Cordillera) - PAV (Parque Américo Vespucio) | ParkCode | false | | sectorCode | Código del sector del parque, utilizado en caso de que no existan coordenadas geograficas para la sepultura | string | false | | name | nombre en la sepultura | string | true |

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:

| Propiedad | Descripcion | Type | Opcional | |---------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|--------|----------| | destination | Latitud y longitud del destino | LatLng | false | | waypoints | Parámetro opcional. Lista de latitudes y longitudes por los cuales la ruta debe pasar. | LatLng[] | true | | parkCode | Código del parque, los valores esperados son: - PPH (Parque Padre Alberto Hurtado) - PCO (Parque Cordillera) - PAV (Parque Américo Vespucio) | ParkCode | false | | sectorCode | Código del sector del parque, utilizado en caso de que no existan coordenadas geograficas para la sepultura | string | false |

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