se agrega mapa de paraderos
parent
7f08de69a1
commit
28cac09f12
|
@ -11,6 +11,7 @@
|
||||||
"@adminkit/core": "^3.4.0",
|
"@adminkit/core": "^3.4.0",
|
||||||
"bootstrap": "^5.3.0",
|
"bootstrap": "^5.3.0",
|
||||||
"bootstrap-icons": "^1.10.5",
|
"bootstrap-icons": "^1.10.5",
|
||||||
|
"google-maps": "^4.3.3",
|
||||||
"history": "^5.3.0",
|
"history": "^5.3.0",
|
||||||
"svelte-navigator": "^3.2.2",
|
"svelte-navigator": "^3.2.2",
|
||||||
"svelte-pagination": "^0.0.1"
|
"svelte-pagination": "^0.0.1"
|
||||||
|
@ -468,6 +469,12 @@
|
||||||
"vite": "^4.0.0"
|
"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": {
|
"node_modules/bootstrap": {
|
||||||
"version": "5.3.0",
|
"version": "5.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.0.tgz",
|
"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": "^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": {
|
"node_modules/history": {
|
||||||
"version": "5.3.0",
|
"version": "5.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz",
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
"@adminkit/core": "^3.4.0",
|
"@adminkit/core": "^3.4.0",
|
||||||
"bootstrap": "^5.3.0",
|
"bootstrap": "^5.3.0",
|
||||||
"bootstrap-icons": "^1.10.5",
|
"bootstrap-icons": "^1.10.5",
|
||||||
|
"google-maps": "^4.3.3",
|
||||||
"history": "^5.3.0",
|
"history": "^5.3.0",
|
||||||
"svelte-navigator": "^3.2.2",
|
"svelte-navigator": "^3.2.2",
|
||||||
"svelte-pagination": "^0.0.1"
|
"svelte-pagination": "^0.0.1"
|
||||||
|
|
|
@ -25,6 +25,13 @@
|
||||||
<span class="align-middle">Perfil</span>
|
<span class="align-middle">Perfil</span>
|
||||||
</SideLink>
|
</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>
|
<li class="sidebar-header">Mantenedores</li>
|
||||||
|
|
||||||
<SideLink to="/aplicaciones">
|
<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 PagePersonas from '$/pages/personas/Admin.svelte'
|
||||||
import PagePersonaCreate from '$/pages/personas/Persona.svelte'
|
import PagePersonaCreate from '$/pages/personas/Persona.svelte'
|
||||||
import PagePersonaModifica from '$/pages/personas/Persona.svelte'
|
import PagePersonaModifica from '$/pages/personas/Persona.svelte'
|
||||||
|
import PageMapaParaderos from '$/pages/mapas/Paraderos.svelte'
|
||||||
|
|
||||||
export const routes = [
|
export const routes = [
|
||||||
{ path: '/', component: PageHome },
|
{ path: '/', component: PageHome },
|
||||||
|
@ -21,5 +22,6 @@ export const routes = [
|
||||||
{ path: '/personas', component: PagePersonas },
|
{ path: '/personas', component: PagePersonas },
|
||||||
{ path: '/personas/nuevo', component: PagePersonaCreate },
|
{ path: '/personas/nuevo', component: PagePersonaCreate },
|
||||||
{ path: '/personas/:rut', component: PagePersonaModifica },
|
{ path: '/personas/:rut', component: PagePersonaModifica },
|
||||||
|
{ path: '/mapas/paraderos', component: PageMapaParaderos },
|
||||||
{ path: '*', component: PageError },
|
{ 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