se agrega mapa de paraderos
parent
7f08de69a1
commit
28cac09f12
|
@ -11,6 +11,7 @@
|
|||
"@adminkit/core": "^3.4.0",
|
||||
"bootstrap": "^5.3.0",
|
||||
"bootstrap-icons": "^1.10.5",
|
||||
"google-maps": "^4.3.3",
|
||||
"history": "^5.3.0",
|
||||
"svelte-navigator": "^3.2.2",
|
||||
"svelte-pagination": "^0.0.1"
|
||||
|
@ -468,6 +469,12 @@
|
|||
"vite": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/googlemaps": {
|
||||
"version": "3.43.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/googlemaps/-/googlemaps-3.43.3.tgz",
|
||||
"integrity": "sha512-ZWNoz/O8MPEpiajvj7QiqCY8tTLFNqNZ/a+s+zTV58wFVNAvvqV4bdGfnsjTb5Cs4V6wEsLrX8XRhmnyYJ2Tdg==",
|
||||
"deprecated": "Types for the Google Maps browser API have moved to @types/google.maps. Note: these types are not for the googlemaps npm package, which is a Node API."
|
||||
},
|
||||
"node_modules/bootstrap": {
|
||||
"version": "5.3.0",
|
||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.0.tgz",
|
||||
|
@ -668,6 +675,14 @@
|
|||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/google-maps": {
|
||||
"version": "4.3.3",
|
||||
"resolved": "https://registry.npmjs.org/google-maps/-/google-maps-4.3.3.tgz",
|
||||
"integrity": "sha512-MQbEgBNQbGyV7mfS2tlFgW4EoGKLia24BvAl4a+kgsYWt4283kyPpaay/yKIsScQLr7nSUONaLNfOdMsCuJDEw==",
|
||||
"dependencies": {
|
||||
"@types/googlemaps": "^3.39.1"
|
||||
}
|
||||
},
|
||||
"node_modules/history": {
|
||||
"version": "5.3.0",
|
||||
"resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz",
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
"@adminkit/core": "^3.4.0",
|
||||
"bootstrap": "^5.3.0",
|
||||
"bootstrap-icons": "^1.10.5",
|
||||
"google-maps": "^4.3.3",
|
||||
"history": "^5.3.0",
|
||||
"svelte-navigator": "^3.2.2",
|
||||
"svelte-pagination": "^0.0.1"
|
||||
|
|
|
@ -25,6 +25,13 @@
|
|||
<span class="align-middle">Perfil</span>
|
||||
</SideLink>
|
||||
|
||||
<li class="sidebar-header">Mapas</li>
|
||||
|
||||
<SideLink to="/mapas/paraderos">
|
||||
<i class="align-middle bi bi-map fs-4" />
|
||||
<span class="align-middle">Paraderos</span>
|
||||
</SideLink>
|
||||
|
||||
<li class="sidebar-header">Mantenedores</li>
|
||||
|
||||
<SideLink to="/aplicaciones">
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
<script>
|
||||
import PageTitle from '$/components/PageTitle.svelte';
|
||||
import {Loader} from 'google-maps';
|
||||
import { getMarcasParaderos } from '$/services/mapas';
|
||||
|
||||
const options = { language: 'es', region: 'CL' };
|
||||
let my_map = null
|
||||
|
||||
$: start()
|
||||
|
||||
async function start() {
|
||||
try {
|
||||
const { api_key_google, zoom, center, marks } = await getMarcasParaderos()
|
||||
const loader = new Loader(api_key_google, options);
|
||||
const google = await loader.load();
|
||||
const map = new google.maps.Map(my_map, { center, zoom });
|
||||
|
||||
for (const mark of marks) {
|
||||
const { lat, lng, title } = mark;
|
||||
new google.maps.Marker({
|
||||
position: { lat, lng },
|
||||
map,
|
||||
title
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
alert(error)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<PageTitle>Paraderos</PageTitle>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div bind:this={my_map} style="height: 500px"></div>
|
||||
</div>
|
||||
</div>
|
|
@ -9,6 +9,7 @@ import PageComunas from '$/pages/comunas/Admin.svelte'
|
|||
import PagePersonas from '$/pages/personas/Admin.svelte'
|
||||
import PagePersonaCreate from '$/pages/personas/Persona.svelte'
|
||||
import PagePersonaModifica from '$/pages/personas/Persona.svelte'
|
||||
import PageMapaParaderos from '$/pages/mapas/Paraderos.svelte'
|
||||
|
||||
export const routes = [
|
||||
{ path: '/', component: PageHome },
|
||||
|
@ -21,5 +22,6 @@ export const routes = [
|
|||
{ path: '/personas', component: PagePersonas },
|
||||
{ path: '/personas/nuevo', component: PagePersonaCreate },
|
||||
{ path: '/personas/:rut', component: PagePersonaModifica },
|
||||
{ path: '/mapas/paraderos', component: PageMapaParaderos },
|
||||
{ path: '*', component: PageError },
|
||||
]
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
import { base, getToken } from './_config'
|
||||
|
||||
export async function getMarcasParaderos(params) {
|
||||
const query = !params ? '' : '?' + (new URLSearchParams(params).toString());
|
||||
const res = await fetch(`${base}/mapas/paraderos/${query}`, {
|
||||
headers: { "Authorization": `Bearer ${getToken()}`, "Content-Type": "application/json" }
|
||||
})
|
||||
if (!res.ok) throw await res.text()
|
||||
return res.json()
|
||||
}
|
Loading…
Reference in New Issue