1.0.8 • Published 2 years ago

@dmpbxo/mapa-gardenias v1.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Mapa Gardenias

Mapa Gardenias es un proyecto que muestra el area en 3D del proyecto Gardenias. En este documento se explicará la forma de usar el paquete.

🏗 Instalación

npm i @dmpbxo/mapa-gardenias

🏁 Getting Started

Plantilla

Solo necesitamos un elemento div con un id donde se renderizará el mapa.

Y tambien es importante obtener el css de mapbox, para ello se deberá de establecer <link href='https://api.mapbox.com/mapbox-gl-js/v2.7.0/mapbox-gl.css' rel='stylesheet' />

<!DOCTYPE html>
<html lang="es">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Mapa</title>
  <link href='https://api.mapbox.com/mapbox-gl-js/v2.7.0/mapbox-gl.css' rel='stylesheet' />
</head>

<body>
  <div id="map" style="width:100%; height: 100vh;"></div>
  <script src="main.js"></script>
</body>

</html>

Instancia

El paquete usa mapbox, por tanto, se deberá de registrar una cuenta en mapbox. Y deberá de generar un token y un estilo para el canvas. MapaGardenias necesita de un token, style, container y onLote callback.

ParametrosDescripción
tokenToken generado en mapbox
styleEs el codigo de estilo generado en mapbox
containerEl ID donde se generará el canvas
onLoteCallback que se acciona cuando se selecciona un lote
import MapaGardenias from "@dmpbxo/mapa-gardenias";

// Instancia
const mapaGardenias = new MapaGardenias({
  token: "pk.eyJ1IjoiZG1wYiIsImEiOiJjbDBobHJ0eHQwOXN4M2ltbmoycm5qMzh5In0.hOuywcDqCkpcuYzEDn0nbA",
  style: "mapbox://styles/dmpb/cl0key28d002q15muz3944tt7",
  container: "map",
  onLote: (result: any) => {
    console.log(result);
  },
});

go

Para redirigirse hasta el centro del mapa, el método go nos ayudará para hacer ese efecto.

const go = <HTMLButtonElement>document.getElementById("go");

go.addEventListener("click", () => {
  mapaGardenias.go();
});

search

MapaGardenias consume la API de MiPortal para buscar un lote. Y una vez encontrado el lote, se redirigira en la ubicación exacta dentro del canvas. El método search recibe como parametros la manzana y el lote. Y devuelve una Promise

const mzInput = <HTMLInputElement>document.getElementById("mz");
const loteInput = <HTMLInputElement>document.getElementById("lote");
const search = <HTMLButtonElement>document.getElementById("search");

search.addEventListener("click", () => {
  const mz = mzInput.value;
  const lote = loteInput.value;

  const result = mapaGardenias.search(mz, lote);

  result.then((data: any) => {
    console.log(data);
  });
});