@@ -2,6 +2,8 @@ import { Component, AfterViewInit } from '@angular/core';
22import * as mapboxgl from 'mapbox-gl' ;
33import * as MapboxGeocoder from '@mapbox/mapbox-gl-geocoder' ;
44import { environment } from 'src/environments/environment' ;
5+ import { SheltersService } from '../_services/shelters.service' ;
6+ import { AlertService } from '../_services/alert.service' ;
57
68@Component ( {
79 selector : 'app-home' ,
@@ -12,7 +14,10 @@ export class HomeComponent implements AfterViewInit {
1214
1315 mapboxAccessToken = environment . mapboxAccessToken ;
1416
15- constructor ( ) { }
17+ constructor (
18+ private sheltersService : SheltersService ,
19+ private alertService : AlertService
20+ ) { }
1621
1722 ngAfterViewInit ( ) {
1823 Object . getOwnPropertyDescriptor ( mapboxgl , "accessToken" ) . set ( this . mapboxAccessToken ) ;
@@ -21,13 +26,9 @@ export class HomeComponent implements AfterViewInit {
2126 container : 'map' ,
2227 style : 'mapbox://styles/mapbox/navigation-guidance-night-v4' ,
2328 center : [ 72.914294 , 19.130722 ] ,
24- zoom : 16
29+ zoom : 12
2530 } ) ;
2631
27- var marker = new mapboxgl . Marker ( )
28- . setLngLat ( [ 72.914294 , 19.130722 ] )
29- . addTo ( map ) ;
30-
3132 map . addControl ( new mapboxgl . GeolocateControl ( {
3233 positionOptions : {
3334 enableHighAccuracy : true
@@ -38,6 +39,34 @@ export class HomeComponent implements AfterViewInit {
3839 map . addControl ( new MapboxGeocoder ( {
3940 accessToken : mapboxgl . accessToken
4041 } ) ) ;
42+
43+ var personMarkerDiv = document . createElement ( 'div' ) ;
44+ personMarkerDiv . style . backgroundImage = 'url("../../assets/person.png")' ;
45+ personMarkerDiv . style . width = '100px' ;
46+ personMarkerDiv . style . height = '100px' ;
47+ personMarkerDiv . style . backgroundRepeat = 'no-repeat'
48+
49+ this . sheltersService . getAllShelters ( )
50+ . subscribe (
51+ ( res ) => {
52+ var i = 0 ;
53+ for ( i = 0 ; i < res . length ; i ++ ) {
54+ var shelterMarkerDiv = document . createElement ( 'div' ) ;
55+ shelterMarkerDiv . style . backgroundImage = 'url("../../assets/shelter.png")' ;
56+ shelterMarkerDiv . style . width = '50px' ;
57+ shelterMarkerDiv . style . height = '50px' ;
58+ shelterMarkerDiv . style . backgroundRepeat = 'no-repeat'
59+
60+ const shelter = res [ i ] ;
61+ console . log ( shelter ) ;
62+
63+ new mapboxgl . Marker ( shelterMarkerDiv )
64+ . setLngLat ( shelter . lngLat . split ( ',' ) )
65+ . addTo ( map ) ;
66+ }
67+ } ,
68+ ( err ) => this . alertService . error ( err )
69+ )
4170 }
4271
4372}
0 commit comments